From 8531921e3d4bba30ed6d10bf671b0b70d2f4f3f7 Mon Sep 17 00:00:00 2001 From: Volker Lendecke Date: Sun, 22 Aug 2010 20:00:46 +0200 Subject: s3: Turn two macros into functions --- source3/auth/pampass.c | 30 ++++++++++++++++++++++++------ 1 file changed, 24 insertions(+), 6 deletions(-) diff --git a/source3/auth/pampass.c b/source3/auth/pampass.c index 69a746747a..f2e30b2c63 100644 --- a/source3/auth/pampass.c +++ b/source3/auth/pampass.c @@ -62,8 +62,22 @@ typedef int (*smb_pam_conv_fn)(int, const struct pam_message **, struct pam_resp /* * Macros to help make life easy */ -#define COPY_STRING(s) (s) ? SMB_STRDUP(s) : NULL -#define COPY_FSTRING(s) (s[0]) ? SMB_STRDUP(s) : NULL + +static char *smb_pam_copy_string(const char *s) +{ + if (s == NULL) { + return NULL; + } + return SMB_STRDUP(s); +} + +static char *smb_pam_copy_fstring(const char *s) +{ + if (s[0] == '\0') { + return NULL; + } + return SMB_STRDUP(s); +} /******************************************************************* PAM error handler. @@ -143,13 +157,15 @@ static int smb_pam_conv(int num_msg, switch (msg[replies]->msg_style) { case PAM_PROMPT_ECHO_ON: reply[replies].resp_retcode = PAM_SUCCESS; - reply[replies].resp = COPY_STRING(udp->PAM_username); + reply[replies].resp = smb_pam_copy_string( + udp->PAM_username); /* PAM frees resp */ break; case PAM_PROMPT_ECHO_OFF: reply[replies].resp_retcode = PAM_SUCCESS; - reply[replies].resp = COPY_STRING(udp->PAM_password); + reply[replies].resp = smb_pam_copy_string( + udp->PAM_password); /* PAM frees resp */ break; @@ -327,7 +343,8 @@ static int smb_pam_passchange_conv(int num_msg, DEBUG(100,("smb_pam_passchange_conv: PAM_PROMPT_ECHO_ON: We actualy sent: %s\n", current_reply)); #endif reply[replies].resp_retcode = PAM_SUCCESS; - reply[replies].resp = COPY_FSTRING(current_reply); + reply[replies].resp = smb_pam_copy_fstring( + current_reply); found = True; break; } @@ -355,7 +372,8 @@ static int smb_pam_passchange_conv(int num_msg, DEBUG(10,("smb_pam_passchange_conv: PAM_PROMPT_ECHO_OFF: We sent: %s\n", current_reply)); pwd_sub(current_reply, udp->PAM_username, udp->PAM_password, udp->PAM_newpassword); reply[replies].resp_retcode = PAM_SUCCESS; - reply[replies].resp = COPY_FSTRING(current_reply); + reply[replies].resp = smb_pam_copy_fstring( + current_reply); #ifdef DEBUG_PASSWORD DEBUG(100,("smb_pam_passchange_conv: PAM_PROMPT_ECHO_OFF: We actualy sent: %s\n", current_reply)); #endif -- cgit