summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorchristos <christos@NetBSD.org>2005-04-19 03:15:34 +0000
committerchristos <christos@NetBSD.org>2005-04-19 03:15:34 +0000
commit2a62e4e1adf2bbce8892ea76bdc1ba4d0103e8ab (patch)
tree6a10b58ad30902fd51bbd98d8d57f8b9cb74f940 /lib
parentd0388cff8b393e8b35202d027307a785afa73774 (diff)
check for pwd != in getpw*_r functions.
Diffstat (limited to 'lib')
-rw-r--r--lib/libpam/modules/pam_chroot/pam_chroot.c7
-rw-r--r--lib/libpam/modules/pam_ftpusers/pam_ftpusers.c7
-rw-r--r--lib/libpam/modules/pam_group/pam_group.c7
-rw-r--r--lib/libpam/modules/pam_krb5/pam_krb5.c7
-rw-r--r--lib/libpam/modules/pam_lastlog/pam_lastlog.c7
-rw-r--r--lib/libpam/modules/pam_nologin/pam_nologin.c7
-rw-r--r--lib/libpam/modules/pam_radius/pam_radius.c7
-rw-r--r--lib/libpam/modules/pam_rhosts/pam_rhosts.c11
-rw-r--r--lib/libpam/modules/pam_securetty/pam_securetty.c7
-rw-r--r--lib/libpam/modules/pam_self/pam_self.c7
-rw-r--r--lib/libpam/modules/pam_ssh/pam_ssh.c10
-rw-r--r--lib/libpam/modules/pam_unix/pam_unix.c7
12 files changed, 52 insertions, 39 deletions
diff --git a/lib/libpam/modules/pam_chroot/pam_chroot.c b/lib/libpam/modules/pam_chroot/pam_chroot.c
index 98b0ffa22d2..8936c907103 100644
--- a/lib/libpam/modules/pam_chroot/pam_chroot.c
+++ b/lib/libpam/modules/pam_chroot/pam_chroot.c
@@ -1,4 +1,4 @@
-/* $NetBSD: pam_chroot.c,v 1.3 2005/03/31 15:11:54 thorpej Exp $ */
+/* $NetBSD: pam_chroot.c,v 1.4 2005/04/19 03:15:34 christos Exp $ */
/*-
* Copyright (c) 2003 Networks Associates Technology, Inc.
@@ -38,7 +38,7 @@
#ifdef __FreeBSD__
__FBSDID("$FreeBSD: src/lib/libpam/modules/pam_chroot/pam_chroot.c,v 1.3 2003/04/30 00:40:24 des Exp $");
#else
-__RCSID("$NetBSD: pam_chroot.c,v 1.3 2005/03/31 15:11:54 thorpej Exp $");
+__RCSID("$NetBSD: pam_chroot.c,v 1.4 2005/04/19 03:15:34 christos Exp $");
#endif
#include <sys/param.h>
@@ -65,7 +65,8 @@ pam_sm_open_session(pam_handle_t *pamh, int flags __unused,
if (pam_get_user(pamh, &user, NULL) != PAM_SUCCESS ||
user == NULL ||
- getpwnam_r(user, &pwres, pwbuf, sizeof(pwbuf), &pwd) != 0)
+ getpwnam_r(user, &pwres, pwbuf, sizeof(pwbuf), &pwd) != 0 ||
+ pwd == NULL)
return (PAM_SESSION_ERR);
if (pwd->pw_uid == 0 && !openpam_get_option(pamh, "also_root"))
return (PAM_SUCCESS);
diff --git a/lib/libpam/modules/pam_ftpusers/pam_ftpusers.c b/lib/libpam/modules/pam_ftpusers/pam_ftpusers.c
index 6605d7e6018..72349a72b11 100644
--- a/lib/libpam/modules/pam_ftpusers/pam_ftpusers.c
+++ b/lib/libpam/modules/pam_ftpusers/pam_ftpusers.c
@@ -1,4 +1,4 @@
-/* $NetBSD: pam_ftpusers.c,v 1.3 2005/03/31 15:11:54 thorpej Exp $ */
+/* $NetBSD: pam_ftpusers.c,v 1.4 2005/04/19 03:15:34 christos Exp $ */
/*-
* Copyright (c) 2001 Networks Associates Technology, Inc.
@@ -38,7 +38,7 @@
#ifdef __FreeBSD__
__FBSDID("$FreeBSD: src/lib/libpam/modules/pam_ftpusers/pam_ftpusers.c,v 1.1 2002/05/08 00:30:10 des Exp $");
#else
-__RCSID("$NetBSD: pam_ftpusers.c,v 1.3 2005/03/31 15:11:54 thorpej Exp $");
+__RCSID("$NetBSD: pam_ftpusers.c,v 1.4 2005/04/19 03:15:34 christos Exp $");
#endif
#include <ctype.h>
@@ -73,7 +73,8 @@ pam_sm_acct_mgmt(pam_handle_t *pamh, int flags __unused,
if (pam_err != PAM_SUCCESS)
return (pam_err);
if (user == NULL ||
- getpwnam_r(user, &pwres, pwbuf, sizeof(pwbuf), &pwd) != 0)
+ getpwnam_r(user, &pwres, pwbuf, sizeof(pwbuf), &pwd) != 0 ||
+ pwd == NULL)
return (PAM_SERVICE_ERR);
found = 0;
diff --git a/lib/libpam/modules/pam_group/pam_group.c b/lib/libpam/modules/pam_group/pam_group.c
index 5caecaba61b..d2f1acf04f1 100644
--- a/lib/libpam/modules/pam_group/pam_group.c
+++ b/lib/libpam/modules/pam_group/pam_group.c
@@ -1,4 +1,4 @@
-/* $NetBSD: pam_group.c,v 1.7 2005/04/05 18:24:17 christos Exp $ */
+/* $NetBSD: pam_group.c,v 1.8 2005/04/19 03:15:35 christos Exp $ */
/*-
* Copyright (c) 2003 Networks Associates Technology, Inc.
@@ -38,7 +38,7 @@
#ifdef __FreeBSD__
__FBSDID("$FreeBSD: src/lib/libpam/modules/pam_group/pam_group.c,v 1.4 2003/12/11 13:55:15 des Exp $");
#else
-__RCSID("$NetBSD: pam_group.c,v 1.7 2005/04/05 18:24:17 christos Exp $");
+__RCSID("$NetBSD: pam_group.c,v 1.8 2005/04/19 03:15:35 christos Exp $");
#endif
#include <sys/types.h>
@@ -78,7 +78,8 @@ pam_sm_authenticate(pam_handle_t *pamh, int flags __unused,
/* get target account */
if (pam_get_user(pamh, &user, NULL) != PAM_SUCCESS ||
user == NULL ||
- getpwnam_r(user, &pwres, pwbuf, sizeof(pwbuf), &pwd) != 0)
+ getpwnam_r(user, &pwres, pwbuf, sizeof(pwbuf), &pwd) != 0 ||
+ pwd == NULL)
return (PAM_AUTH_ERR);
if (pwd->pw_uid != 0 && openpam_get_option(pamh, "root_only"))
return (PAM_IGNORE);
diff --git a/lib/libpam/modules/pam_krb5/pam_krb5.c b/lib/libpam/modules/pam_krb5/pam_krb5.c
index 744ac80f757..5566c3b8b0f 100644
--- a/lib/libpam/modules/pam_krb5/pam_krb5.c
+++ b/lib/libpam/modules/pam_krb5/pam_krb5.c
@@ -1,4 +1,4 @@
-/* $NetBSD: pam_krb5.c,v 1.7 2005/03/31 15:11:54 thorpej Exp $ */
+/* $NetBSD: pam_krb5.c,v 1.8 2005/04/19 03:15:35 christos Exp $ */
/*-
* This pam_krb5 module contains code that is:
@@ -53,7 +53,7 @@
#ifdef __FreeBSD__
__FBSDID("$FreeBSD: src/lib/libpam/modules/pam_krb5/pam_krb5.c,v 1.22 2005/01/24 16:49:50 rwatson Exp $");
#else
-__RCSID("$NetBSD: pam_krb5.c,v 1.7 2005/03/31 15:11:54 thorpej Exp $");
+__RCSID("$NetBSD: pam_krb5.c,v 1.8 2005/04/19 03:15:35 christos Exp $");
#endif
#include <sys/types.h>
@@ -224,7 +224,8 @@ pam_sm_authenticate(pam_handle_t *pamh, int flags __unused,
PAM_LOG("PAM_USER Redone");
}
- if (getpwnam_r(user, &pwres, pwbuf, sizeof(pwbuf), &pwd) != 0) {
+ if (getpwnam_r(user, &pwres, pwbuf, sizeof(pwbuf), &pwd) != 0 ||
+ pwd == NULL) {
retval = PAM_USER_UNKNOWN;
goto cleanup2;
}
diff --git a/lib/libpam/modules/pam_lastlog/pam_lastlog.c b/lib/libpam/modules/pam_lastlog/pam_lastlog.c
index a10075d8828..8005e17d799 100644
--- a/lib/libpam/modules/pam_lastlog/pam_lastlog.c
+++ b/lib/libpam/modules/pam_lastlog/pam_lastlog.c
@@ -1,4 +1,4 @@
-/* $NetBSD: pam_lastlog.c,v 1.7 2005/03/31 15:11:54 thorpej Exp $ */
+/* $NetBSD: pam_lastlog.c,v 1.8 2005/04/19 03:15:35 christos Exp $ */
/*-
* Copyright (c) 1980, 1987, 1988, 1991, 1993, 1994
@@ -47,7 +47,7 @@
#ifdef __FreeBSD__
__FBSDID("$FreeBSD: src/lib/libpam/modules/pam_lastlog/pam_lastlog.c,v 1.20 2004/01/26 19:28:37 des Exp $");
#else
-__RCSID("$NetBSD: pam_lastlog.c,v 1.7 2005/03/31 15:11:54 thorpej Exp $");
+__RCSID("$NetBSD: pam_lastlog.c,v 1.8 2005/04/19 03:15:35 christos Exp $");
#endif
#include <sys/param.h>
@@ -110,7 +110,8 @@ pam_sm_open_session(pam_handle_t *pamh, int flags,
return pam_err;
if (user == NULL ||
- getpwnam_r(user, &pwres, pwbuf, sizeof(pwbuf), &pwd) != 0)
+ getpwnam_r(user, &pwres, pwbuf, sizeof(pwbuf), &pwd) != 0 ||
+ pwd == NULL)
return PAM_SERVICE_ERR;
PAM_LOG("Got user: %s", user);
diff --git a/lib/libpam/modules/pam_nologin/pam_nologin.c b/lib/libpam/modules/pam_nologin/pam_nologin.c
index c1f159a65e7..4d47bc13b36 100644
--- a/lib/libpam/modules/pam_nologin/pam_nologin.c
+++ b/lib/libpam/modules/pam_nologin/pam_nologin.c
@@ -1,4 +1,4 @@
-/* $NetBSD: pam_nologin.c,v 1.4 2005/03/31 15:11:54 thorpej Exp $ */
+/* $NetBSD: pam_nologin.c,v 1.5 2005/04/19 03:15:35 christos Exp $ */
/*-
* Copyright 2001 Mark R V Murray
@@ -40,7 +40,7 @@
#ifdef __FreeBSD__
__FBSDID("$FreeBSD: src/lib/libpam/modules/pam_nologin/pam_nologin.c,v 1.10 2002/04/12 22:27:21 des Exp $");
#else
-__RCSID("$NetBSD: pam_nologin.c,v 1.4 2005/03/31 15:11:54 thorpej Exp $");
+__RCSID("$NetBSD: pam_nologin.c,v 1.5 2005/04/19 03:15:35 christos Exp $");
#endif
@@ -92,7 +92,8 @@ pam_sm_authenticate(pam_handle_t *pamh, int flags __unused,
* Do not allow login of unexisting users, so that a directory
* failure will not cause the nologin capability to be ignored.
*/
- if (getpwnam_r(user, &pwres, pwbuf, sizeof(pwbuf), &pwd) != 0) {
+ if (getpwnam_r(user, &pwres, pwbuf, sizeof(pwbuf), &pwd) != 0 ||
+ pwd == NULL) {
return PAM_USER_UNKNOWN;
} else {
if (pwd->pw_uid == 0)
diff --git a/lib/libpam/modules/pam_radius/pam_radius.c b/lib/libpam/modules/pam_radius/pam_radius.c
index f417df758f3..a3158d2d5f0 100644
--- a/lib/libpam/modules/pam_radius/pam_radius.c
+++ b/lib/libpam/modules/pam_radius/pam_radius.c
@@ -1,4 +1,4 @@
-/* $NetBSD: pam_radius.c,v 1.3 2005/03/31 15:11:54 thorpej Exp $ */
+/* $NetBSD: pam_radius.c,v 1.4 2005/04/19 03:15:35 christos Exp $ */
/*-
* Copyright 1998 Juniper Networks, Inc.
@@ -40,7 +40,7 @@
#ifdef __FreeBSD__
__FBSDID("$FreeBSD: src/lib/libpam/modules/pam_radius/pam_radius.c,v 1.22 2004/06/25 12:32:45 kan Exp $");
#else
-__RCSID("$NetBSD: pam_radius.c,v 1.3 2005/03/31 15:11:54 thorpej Exp $");
+__RCSID("$NetBSD: pam_radius.c,v 1.4 2005/04/19 03:15:35 christos Exp $");
#endif
#include <sys/param.h>
@@ -323,7 +323,8 @@ pam_sm_authenticate(pam_handle_t *pamh, int flags __unused,
if (retval != PAM_SUCCESS)
return (retval);
if (getpwnam_r(tmpuser, &pwres, pwbuf,
- sizeof(pwbuf), &pwd) != 0) {
+ sizeof(pwbuf), &pwd) != 0 ||
+ pwd == NULL) {
pam_set_item(pamh, PAM_USER,
template_user);
PAM_LOG("Using template user");
diff --git a/lib/libpam/modules/pam_rhosts/pam_rhosts.c b/lib/libpam/modules/pam_rhosts/pam_rhosts.c
index f4a580025c5..8a032f70bd0 100644
--- a/lib/libpam/modules/pam_rhosts/pam_rhosts.c
+++ b/lib/libpam/modules/pam_rhosts/pam_rhosts.c
@@ -1,4 +1,4 @@
-/* $NetBSD: pam_rhosts.c,v 1.3 2005/03/31 15:11:54 thorpej Exp $ */
+/* $NetBSD: pam_rhosts.c,v 1.4 2005/04/19 03:15:36 christos Exp $ */
/*-
* Copyright (c) 2002 Danny Braniss
@@ -40,7 +40,7 @@
#ifdef __FreeBSD__
__FBSDID("$FreeBSD: src/lib/libpam/modules/pam_rhosts/pam_rhosts.c,v 1.3 2003/12/11 13:55:16 des Exp $");
#else
-__RCSID("$NetBSD: pam_rhosts.c,v 1.3 2005/03/31 15:11:54 thorpej Exp $");
+__RCSID("$NetBSD: pam_rhosts.c,v 1.4 2005/04/19 03:15:36 christos Exp $");
#endif
#include <pwd.h>
@@ -59,7 +59,7 @@ PAM_EXTERN int
pam_sm_authenticate(pam_handle_t *pamh, int flags __unused,
int argc __unused, const char *argv[] __unused)
{
- struct passwd *pw, pwres;
+ struct passwd *pwd, pwres;
const char *user;
const void *ruser, *rhost;
int err, superuser;
@@ -69,9 +69,10 @@ pam_sm_authenticate(pam_handle_t *pamh, int flags __unused,
if (err != PAM_SUCCESS)
return (err);
- if (getpwnam_r(user, &pwres, pwbuf, sizeof(pwbuf), &pw) != 0)
+ if (getpwnam_r(user, &pwres, pwbuf, sizeof(pwbuf), &pwd) != 0 ||
+ pwd == NULL)
return (PAM_USER_UNKNOWN);
- if (pw->pw_uid == 0 &&
+ if (pwd->pw_uid == 0 &&
openpam_get_option(pamh, OPT_ALLOW_ROOT) == NULL)
return (PAM_AUTH_ERR);
diff --git a/lib/libpam/modules/pam_securetty/pam_securetty.c b/lib/libpam/modules/pam_securetty/pam_securetty.c
index 38c09014888..b052ba0d49a 100644
--- a/lib/libpam/modules/pam_securetty/pam_securetty.c
+++ b/lib/libpam/modules/pam_securetty/pam_securetty.c
@@ -1,4 +1,4 @@
-/* $NetBSD: pam_securetty.c,v 1.3 2005/03/31 15:11:54 thorpej Exp $ */
+/* $NetBSD: pam_securetty.c,v 1.4 2005/04/19 03:15:36 christos Exp $ */
/*-
* Copyright (c) 2001 Mark R V Murray
@@ -40,7 +40,7 @@
#ifdef __FreeBSD__
__FBSDID("$FreeBSD: src/lib/libpam/modules/pam_securetty/pam_securetty.c,v 1.13 2004/02/10 10:13:21 des Exp $");
#else
-__RCSID("$NetBSD: pam_securetty.c,v 1.3 2005/03/31 15:11:54 thorpej Exp $");
+__RCSID("$NetBSD: pam_securetty.c,v 1.4 2005/04/19 03:15:36 christos Exp $");
#endif
#include <sys/types.h>
@@ -72,7 +72,8 @@ pam_sm_acct_mgmt(pam_handle_t *pamh __unused, int flags __unused,
if (pam_err != PAM_SUCCESS)
return (pam_err);
if (user == NULL ||
- getpwnam_r(user, &pwres, pwbuf, sizeof(pwbuf), &pwd) != 0)
+ getpwnam_r(user, &pwres, pwbuf, sizeof(pwbuf), &pwd) != 0 ||
+ pwd == NULL)
return (PAM_SERVICE_ERR);
PAM_LOG("Got user: %s", user);
diff --git a/lib/libpam/modules/pam_self/pam_self.c b/lib/libpam/modules/pam_self/pam_self.c
index dc40e0e8d7e..4d8dd0fe187 100644
--- a/lib/libpam/modules/pam_self/pam_self.c
+++ b/lib/libpam/modules/pam_self/pam_self.c
@@ -1,4 +1,4 @@
-/* $NetBSD: pam_self.c,v 1.3 2005/03/31 15:11:54 thorpej Exp $ */
+/* $NetBSD: pam_self.c,v 1.4 2005/04/19 03:15:36 christos Exp $ */
/*-
* Copyright (c) 2001 Mark R V Murray
@@ -40,7 +40,7 @@
#ifdef __FreeBSD__
__FBSDID("$FreeBSD: src/lib/libpam/modules/pam_self/pam_self.c,v 1.9 2002/04/12 22:27:24 des Exp $");
#else
-__RCSID("$NetBSD: pam_self.c,v 1.3 2005/03/31 15:11:54 thorpej Exp $");
+__RCSID("$NetBSD: pam_self.c,v 1.4 2005/04/19 03:15:36 christos Exp $");
#endif
#define _BSD_SOURCE
@@ -71,7 +71,8 @@ pam_sm_authenticate(pam_handle_t *pamh, int flags __unused,
if (pam_err != PAM_SUCCESS)
return (pam_err);
if (luser == NULL ||
- getpwnam_r(luser, &pwres, pwbuf, sizeof(pwbuf), &pwd) != 0)
+ getpwnam_r(luser, &pwres, pwbuf, sizeof(pwbuf), &pwd) != 0 ||
+ pwd == NULL)
return (PAM_AUTH_ERR);
uid = getuid();
diff --git a/lib/libpam/modules/pam_ssh/pam_ssh.c b/lib/libpam/modules/pam_ssh/pam_ssh.c
index a4cba82bea9..37f2b5f1730 100644
--- a/lib/libpam/modules/pam_ssh/pam_ssh.c
+++ b/lib/libpam/modules/pam_ssh/pam_ssh.c
@@ -1,4 +1,4 @@
-/* $NetBSD: pam_ssh.c,v 1.10 2005/03/31 15:11:54 thorpej Exp $ */
+/* $NetBSD: pam_ssh.c,v 1.11 2005/04/19 03:15:36 christos Exp $ */
/*-
* Copyright (c) 2003 Networks Associates Technology, Inc.
@@ -38,7 +38,7 @@
#ifdef __FreeBSD__
__FBSDID("$FreeBSD: src/lib/libpam/modules/pam_ssh/pam_ssh.c,v 1.40 2004/02/10 10:13:21 des Exp $");
#else
-__RCSID("$NetBSD: pam_ssh.c,v 1.10 2005/03/31 15:11:54 thorpej Exp $");
+__RCSID("$NetBSD: pam_ssh.c,v 1.11 2005/04/19 03:15:36 christos Exp $");
#endif
#include <sys/param.h>
@@ -153,7 +153,8 @@ pam_sm_authenticate(pam_handle_t *pamh, int flags __unused,
pam_err = pam_get_user(pamh, &user, NULL);
if (pam_err != PAM_SUCCESS)
return (pam_err);
- if (getpwnam_r(user, &pwres, pwbuf, sizeof(pwbuf), &pwd) != 0)
+ if (getpwnam_r(user, &pwres, pwbuf, sizeof(pwbuf), &pwd) != 0 ||
+ pwd == NULL)
return (PAM_USER_UNKNOWN);
if (pwd->pw_dir == NULL)
return (PAM_AUTH_ERR);
@@ -414,7 +415,8 @@ pam_sm_open_session(pam_handle_t *pamh, int flags __unused,
pam_err = pam_get_user(pamh, &user, NULL);
if (pam_err != PAM_SUCCESS)
return (pam_err);
- if (getpwnam_r(user, &pwres, pwbuf, sizeof(pwbuf), &pwd) != 0)
+ if (getpwnam_r(user, &pwres, pwbuf, sizeof(pwbuf), &pwd) != 0 ||
+ pwd == NULL)
return (PAM_USER_UNKNOWN);
/* start the agent */
diff --git a/lib/libpam/modules/pam_unix/pam_unix.c b/lib/libpam/modules/pam_unix/pam_unix.c
index 24dc6d27c7b..04b4479b151 100644
--- a/lib/libpam/modules/pam_unix/pam_unix.c
+++ b/lib/libpam/modules/pam_unix/pam_unix.c
@@ -1,4 +1,4 @@
-/* $NetBSD: pam_unix.c,v 1.7 2005/03/31 15:11:54 thorpej Exp $ */
+/* $NetBSD: pam_unix.c,v 1.8 2005/04/19 03:15:37 christos Exp $ */
/*-
* Copyright 1998 Juniper Networks, Inc.
@@ -40,7 +40,7 @@
#ifdef __FreeBSD__
__FBSDID("$FreeBSD: src/lib/libpam/modules/pam_unix/pam_unix.c,v 1.49 2004/02/10 10:13:21 des Exp $");
#else
-__RCSID("$NetBSD: pam_unix.c,v 1.7 2005/03/31 15:11:54 thorpej Exp $");
+__RCSID("$NetBSD: pam_unix.c,v 1.8 2005/04/19 03:15:37 christos Exp $");
#endif
@@ -158,7 +158,8 @@ pam_sm_acct_mgmt(pam_handle_t *pamh, int flags __unused,
return (retval);
if (user == NULL ||
- getpwnam_r(user, &pwres, pwbuf, sizeof(pwbuf), &pwd) != 0)
+ getpwnam_r(user, &pwres, pwbuf, sizeof(pwbuf), &pwd) != 0 ||
+ pwd == NULL)
return (PAM_SERVICE_ERR);
PAM_LOG("Got user: %s", user);