Source-Changes-HG archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
[src/netbsd-3]: src/usr.bin/su Pull up revision 1.9 (requested by lukem in ti...
details: https://anonhg.NetBSD.org/src/rev/330c1075a883
branches: netbsd-3
changeset: 576504:330c1075a883
user: tron <tron%NetBSD.org@localhost>
date: Wed Jul 06 21:54:24 2005 +0000
description:
Pull up revision 1.9 (requested by lukem in ticket #530):
check for pwd != NULL
diffstat:
usr.bin/su/su_pam.c | 12 +++++++-----
1 files changed, 7 insertions(+), 5 deletions(-)
diffs (47 lines):
diff -r cb8237f09b0d -r 330c1075a883 usr.bin/su/su_pam.c
--- a/usr.bin/su/su_pam.c Wed Jul 06 21:51:21 2005 +0000
+++ b/usr.bin/su/su_pam.c Wed Jul 06 21:54:24 2005 +0000
@@ -1,4 +1,4 @@
-/* $NetBSD: su_pam.c,v 1.5.2.3 2005/07/06 21:51:21 tron Exp $ */
+/* $NetBSD: su_pam.c,v 1.5.2.4 2005/07/06 21:54:24 tron Exp $ */
/*
* Copyright (c) 1988 The Regents of the University of California.
@@ -40,7 +40,7 @@
#if 0
static char sccsid[] = "@(#)su.c 8.3 (Berkeley) 4/2/94";*/
#else
-__RCSID("$NetBSD: su_pam.c,v 1.5.2.3 2005/07/06 21:51:21 tron Exp $");
+__RCSID("$NetBSD: su_pam.c,v 1.5.2.4 2005/07/06 21:54:24 tron Exp $");
#endif
#endif /* not lint */
@@ -156,7 +156,7 @@
username = getlogin();
if (username == NULL ||
getpwnam_r(username, &pwres, pwbuf, sizeof(pwbuf), &pwd) != 0 ||
- pwd->pw_uid != ruid) {
+ pwd == NULL || pwd->pw_uid != ruid) {
if (getpwuid_r(ruid, &pwres, pwbuf, sizeof(pwbuf), &pwd) != 0)
pwd = NULL;
}
@@ -178,7 +178,8 @@
user = *argv ? *argv : "root";
np = *argv ? argv : argv - 1;
- if (getpwnam_r(user, &pwres, pwbuf, sizeof(pwbuf), &pwd) != 0)
+ if (getpwnam_r(user, &pwres, pwbuf, sizeof(pwbuf), &pwd) != 0 ||
+ pwd == NULL)
errx(EXIT_FAILURE, "unknown login %s", user);
/*
@@ -246,7 +247,8 @@
"pam_get_item(PAM_USER): %s", pam_strerror(pamh, pam_err));
} else {
user = (char *)newuser;
- if (getpwnam_r(user, &pwres, pwbuf, sizeof(pwbuf), &pwd) != 0) {
+ if (getpwnam_r(user, &pwres, pwbuf, sizeof(pwbuf), &pwd) != 0 ||
+ pwd == NULL) {
pam_end(pamh, pam_err);
syslog(LOG_ERR, "unknown login: %s", username);
errx(EXIT_FAILURE, "unknown login: %s", username);
Home |
Main Index |
Thread Index |
Old Index