From 4be13a4e6c3aebac7c39e73b16a6ecbb8060a84b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dag-Erling=20Sm=C3=B8rgrav?= Date: Tue, 17 Jan 2017 15:19:56 +0000 Subject: [PATCH] merge r768: fix condition for using application-provided prompt git-svn-id: svn+ssh://svn.openpam.org/svn/openpam/branches/nooath@905 185d5e19-27fe-0310-9dcf-9bff6b9f3609 --- CREDITS | 1 + LICENSE | 2 +- lib/libpam/pam_get_authtok.c | 8 +++++--- lib/libpam/pam_get_user.c | 9 +++++---- 4 files changed, 12 insertions(+), 8 deletions(-) diff --git a/CREDITS b/CREDITS index c14f7ea..c294fb7 100644 --- a/CREDITS +++ b/CREDITS @@ -43,6 +43,7 @@ ideas: Mikhail Teterin Mikko Työläjärvi Nick Hibma + Patrick Bihan-Faou Robert Watson Ruslan Ermilov Sebastian Krahmer diff --git a/LICENSE b/LICENSE index 18ff489..d8957b3 100644 --- a/LICENSE +++ b/LICENSE @@ -1,6 +1,6 @@ Copyright (c) 2002-2003 Networks Associates Technology, Inc. -Copyright (c) 2004-2012 Dag-Erling Smørgrav +Copyright (c) 2004-2017 Dag-Erling Smørgrav All rights reserved. This software was developed for the FreeBSD Project by ThinkSec AS and diff --git a/lib/libpam/pam_get_authtok.c b/lib/libpam/pam_get_authtok.c index 837cb8f..8c04b39 100644 --- a/lib/libpam/pam_get_authtok.c +++ b/lib/libpam/pam_get_authtok.c @@ -1,6 +1,6 @@ /*- * Copyright (c) 2002-2003 Networks Associates Technology, Inc. - * Copyright (c) 2004-2014 Dag-Erling Smørgrav + * Copyright (c) 2004-2017 Dag-Erling Smørgrav * All rights reserved. * * This software was developed for the FreeBSD Project by ThinkSec AS and @@ -122,9 +122,11 @@ pam_get_authtok(pam_handle_t *pamh, if ((promptp = openpam_get_option(pamh, prompt_option)) != NULL) prompt = promptp; /* no prompt provided, see if there is one tucked away somewhere */ - if (prompt == NULL) - if (pam_get_item(pamh, pitem, &promptp) && promptp != NULL) + if (prompt == NULL) { + r = pam_get_item(pamh, pitem, &promptp); + if (r == PAM_SUCCESS && promptp != NULL) prompt = promptp; + } /* fall back to hardcoded default */ if (prompt == NULL) prompt = default_prompt; diff --git a/lib/libpam/pam_get_user.c b/lib/libpam/pam_get_user.c index 54b3ecf..e93fd25 100644 --- a/lib/libpam/pam_get_user.c +++ b/lib/libpam/pam_get_user.c @@ -1,6 +1,6 @@ /*- * Copyright (c) 2002-2003 Networks Associates Technology, Inc. - * Copyright (c) 2004-2011 Dag-Erling Smørgrav + * Copyright (c) 2004-2017 Dag-Erling Smørgrav * All rights reserved. * * This software was developed for the FreeBSD Project by ThinkSec AS and @@ -78,10 +78,11 @@ pam_get_user(pam_handle_t *pamh, if ((promptp = openpam_get_option(pamh, "user_prompt")) != NULL) prompt = promptp; /* no prompt provided, see if there is one tucked away somewhere */ - if (prompt == NULL) - if (pam_get_item(pamh, PAM_USER_PROMPT, &promptp) && - promptp != NULL) + if (prompt == NULL) { + r = pam_get_item(pamh, PAM_USER_PROMPT, &promptp); + if (r == PAM_SUCCESS && promptp != NULL) prompt = promptp; + } /* fall back to hardcoded default */ if (prompt == NULL) prompt = user_prompt;