Module Name:    src
Committed By:   joerg
Date:           Tue Mar  9 16:14:08 UTC 2010

Modified Files:
        src/usr.bin/passwd: pam_passwd.c

Log Message:
Do not call pam_end with an invalid handle if pam_start failed.
>From Richard Hansen.


To generate a diff of this commit:
cvs rdiff -u -r1.5 -r1.6 src/usr.bin/passwd/pam_passwd.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/usr.bin/passwd/pam_passwd.c
diff -u src/usr.bin/passwd/pam_passwd.c:1.5 src/usr.bin/passwd/pam_passwd.c:1.6
--- src/usr.bin/passwd/pam_passwd.c:1.5	Tue Mar  2 16:19:13 2010
+++ src/usr.bin/passwd/pam_passwd.c	Tue Mar  9 16:14:08 2010
@@ -1,4 +1,4 @@
-/*	$NetBSD: pam_passwd.c,v 1.5 2010/03/02 16:19:13 gdt Exp $	*/
+/*	$NetBSD: pam_passwd.c,v 1.6 2010/03/09 16:14:08 joerg Exp $	*/
 
 /*-
  * Copyright (c) 2002 Networks Associates Technologies, Inc.
@@ -38,7 +38,7 @@
 #ifdef __FreeBSD__
 __FBSDID("$FreeBSD: src/usr.bin/passwd/passwd.c,v 1.23 2003/04/18 21:27:09 nectar Exp $");
 #else
-__RCSID("$NetBSD: pam_passwd.c,v 1.5 2010/03/02 16:19:13 gdt Exp $");
+__RCSID("$NetBSD: pam_passwd.c,v 1.6 2010/03/09 16:14:08 joerg Exp $");
 #endif
 
 #include <sys/param.h>
@@ -108,7 +108,9 @@
 
 	/* initialize PAM -- always use the program name "passwd" */
 	pam_err = pam_start("passwd", username, &pamc, &pamh);
-	pam_check("unable to start PAM session");
+	if (pam_err != PAM_SUCCESS)
+		errx(1, "unable to start PAM session: %s",
+		    pam_strerror(NULL, pam_err));
 
 	pam_err = pam_set_item(pamh, PAM_TTY, ttyname(STDERR_FILENO));
 	pam_check("unable to set TTY");

Reply via email to