diff options
author | Kevin Lo <kevlo@FreeBSD.org> | 2012-02-22 06:27:20 +0000 |
---|---|---|
committer | Kevin Lo <kevlo@FreeBSD.org> | 2012-02-22 06:27:20 +0000 |
commit | 29dcf726d233505532b89c31f8ba31eb69fa26df (patch) | |
tree | 456afe25d5d911e27dc003830e6ca01ed80dab54 /usr.bin/chkey | |
parent | 5bfdf7f990aec67ac9c94689556bad53eebef73a (diff) | |
download | src-29dcf726d233505532b89c31f8ba31eb69fa26df.tar.gz src-29dcf726d233505532b89c31f8ba31eb69fa26df.zip |
Handle NULL return from crypt(3). Mostly from DragonFly
Notes
Notes:
svn path=/head/; revision=231994
Diffstat (limited to 'usr.bin/chkey')
-rw-r--r-- | usr.bin/chkey/chkey.c | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/usr.bin/chkey/chkey.c b/usr.bin/chkey/chkey.c index 309827192dd4..4751a284b384 100644 --- a/usr.bin/chkey/chkey.c +++ b/usr.bin/chkey/chkey.c @@ -94,6 +94,9 @@ main(int argc, char **argv) #ifdef YP char *master; #endif +#ifdef YPPASSWD + char *cryptpw; +#endif while ((ch = getopt(argc, argv, "f")) != -1) switch(ch) { @@ -149,7 +152,8 @@ main(int argc, char **argv) pass = getpass("Password:"); #ifdef YPPASSWD if (!force) { - if (strcmp(crypt(pass, pw->pw_passwd), pw->pw_passwd) != 0) + cryptpw = crypt(pass, pw->pw_passwd); + if (cryptpw == NULL || strcmp(cryptpw, pw->pw_passwd) != 0) errx(1, "invalid password"); } #else |