Module Name:    src
Committed By:   christos
Date:           Thu Feb  3 02:06:00 UTC 2011

Modified Files:
        src/lib/libpam/modules/pam_exec: pam_exec.c

Log Message:
PR/44505: Mark Davies: pam_exec fails to realloc enough space, while
there add a volatile variable (From FreeBSD)


To generate a diff of this commit:
cvs rdiff -u -r1.4 -r1.5 src/lib/libpam/modules/pam_exec/pam_exec.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/libpam/modules/pam_exec/pam_exec.c
diff -u src/lib/libpam/modules/pam_exec/pam_exec.c:1.4 src/lib/libpam/modules/pam_exec/pam_exec.c:1.5
--- src/lib/libpam/modules/pam_exec/pam_exec.c:1.4	Sat Feb 26 17:45:52 2005
+++ src/lib/libpam/modules/pam_exec/pam_exec.c	Wed Feb  2 21:05:59 2011
@@ -1,4 +1,4 @@
-/*	$NetBSD: pam_exec.c,v 1.4 2005/02/26 22:45:52 christos Exp $	*/
+/*	$NetBSD: pam_exec.c,v 1.5 2011/02/03 02:05:59 christos Exp $	*/
 
 /*-
  * Copyright (c) 2001,2003 Networks Associates Technology, Inc.
@@ -38,7 +38,7 @@
 #ifdef __FreeBSD__
 __FBSDID("$FreeBSD: src/lib/libpam/modules/pam_exec/pam_exec.c,v 1.4 2005/02/01 10:37:07 des Exp $");
 #else
-__RCSID("$NetBSD: pam_exec.c,v 1.4 2005/02/26 22:45:52 christos Exp $");
+__RCSID("$NetBSD: pam_exec.c,v 1.5 2011/02/03 02:05:59 christos Exp $");
 #endif
 
 #include <sys/types.h>
@@ -70,8 +70,9 @@
 _pam_exec(pam_handle_t *pamh __unused, int flags __unused,
     int argc, const char *argv[])
 {
-	int childerr, envlen, i, nitems, pam_err, status;
+	int envlen, i, nitems, pam_err, status;
 	char **envlist, **tmp;
+	volatile int childerr;
 	pid_t pid;
 
 	if (argc < 1)
@@ -90,7 +91,7 @@
 	for (envlen = 0; envlist[envlen] != NULL; ++envlen)
 		/* nothing */ ;
 	nitems = sizeof(env_items) / sizeof(*env_items);
-	tmp = realloc(envlist, (envlen + nitems + 1) * sizeof **envlist);
+	tmp = realloc(envlist, (envlen + nitems + 1) * sizeof(*envlist));
 	if (tmp == NULL) {
 		openpam_free_envlist(envlist);
 		return (PAM_BUF_ERR);

Reply via email to