mirror of
https://github.com/samba-team/samba.git
synced 2025-08-15 13:49:28 +03:00
s3: Turn two macros into functions
This commit is contained in:
@ -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
|
||||
|
Reference in New Issue
Block a user