mirror of
https://gitlab.com/openconnect/ocserv.git
synced 2026-10-13 18:12:03 +08:00
When not reading from a tty use getline().
This commit is contained in:
+15
-3
@@ -277,7 +277,8 @@ int main(int argc, char **argv)
|
||||
{
|
||||
int ret, optct;
|
||||
const char *username, *groupname, *fpasswd;
|
||||
const char* passwd;
|
||||
char* passwd;
|
||||
size_t l, i;
|
||||
|
||||
if ((ret = gnutls_global_init()) < 0) {
|
||||
fprintf(stderr, "global_init: %s\n", gnutls_strerror(ret));
|
||||
@@ -315,14 +316,15 @@ int main(int argc, char **argv)
|
||||
unlock_user(fpasswd, username);
|
||||
else { /* set password */
|
||||
|
||||
if (isatty(STDIN_FILENO)) {
|
||||
char* p2;
|
||||
|
||||
passwd = getpass("Enter password: ");
|
||||
if (passwd == NULL) {
|
||||
fprintf(stderr, "Please specify a password\n");
|
||||
exit(1);
|
||||
}
|
||||
|
||||
if (isatty(STDIN_FILENO)) {
|
||||
char* p2;
|
||||
|
||||
p2 = strdup(passwd);
|
||||
passwd = getpass("Re-enter password: ");
|
||||
@@ -336,6 +338,16 @@ int main(int argc, char **argv)
|
||||
exit(1);
|
||||
}
|
||||
free(p2);
|
||||
} else {
|
||||
passwd = NULL;
|
||||
l = getline(&passwd, &i, stdin);
|
||||
if (l <= 1) {
|
||||
fprintf(stderr, "Please specify a password\n");
|
||||
exit(1);
|
||||
}
|
||||
|
||||
if (passwd[l-1] == '\n')
|
||||
passwd[l-1] = 0;
|
||||
}
|
||||
|
||||
crypt_int(fpasswd, username, groupname, passwd);
|
||||
|
||||
Reference in New Issue
Block a user