Module Name: src
Committed By: yamt
Date: Mon Jun 1 06:04:37 UTC 2009
Modified Files:
src/lib/libc/compat/gen: compat_getpwent.c
Log Message:
fix NULL dereferences in the compat versions of getpwent, getpwnam,
and getpwuid.
To generate a diff of this commit:
cvs rdiff -u -r1.2 -r1.3 src/lib/libc/compat/gen/compat_getpwent.c
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.
Modified files:
Index: src/lib/libc/compat/gen/compat_getpwent.c
diff -u src/lib/libc/compat/gen/compat_getpwent.c:1.2 src/lib/libc/compat/gen/compat_getpwent.c:1.3
--- src/lib/libc/compat/gen/compat_getpwent.c:1.2 Sun Jan 11 02:46:25 2009
+++ src/lib/libc/compat/gen/compat_getpwent.c Mon Jun 1 06:04:37 2009
@@ -1,4 +1,4 @@
-/* $NetBSD: compat_getpwent.c,v 1.2 2009/01/11 02:46:25 christos Exp $ */
+/* $NetBSD: compat_getpwent.c,v 1.3 2009/06/01 06:04:37 yamt Exp $ */
/*-
* Copyright (c) 2008 The NetBSD Foundation, Inc.
@@ -37,7 +37,7 @@
*/
#include <sys/cdefs.h>
#if defined(LIBC_SCCS) && !defined(lint)
-__RCSID("$NetBSD: compat_getpwent.c,v 1.2 2009/01/11 02:46:25 christos Exp $");
+__RCSID("$NetBSD: compat_getpwent.c,v 1.3 2009/06/01 06:04:37 yamt Exp $");
#endif /* LIBC_SCCS and not lint */
#define __LIBC12_SOURCE__
@@ -81,6 +81,10 @@
cvt(struct passwd *p)
{
struct passwd50 *q = (void *)p;
+
+ if (q == NULL) {
+ return NULL;
+ }
q->pw_change = (int32_t)p->pw_change;
q->pw_class = p->pw_class;
q->pw_gecos = p->pw_gecos;