diff options
author | Günther Deschner <gd@samba.org> | 2006-08-01 15:31:16 +0000 |
---|---|---|
committer | Gerald (Jerry) Carter <jerry@samba.org> | 2007-10-10 11:38:28 -0500 |
commit | ec17ea6b069fee0dca351dc53bcbb1c2ebaa0690 (patch) | |
tree | 8bc1f437ebc6807a583c352aa011e372e8b51b3e /source3/nsswitch/pam_winbind.c | |
parent | 41449a85e64325d16c63ea4e6ee57254c8aac996 (diff) | |
download | samba-ec17ea6b069fee0dca351dc53bcbb1c2ebaa0690.tar.gz samba-ec17ea6b069fee0dca351dc53bcbb1c2ebaa0690.tar.bz2 samba-ec17ea6b069fee0dca351dc53bcbb1c2ebaa0690.zip |
r17366: Save the logon script path from the info3 in the PAM session allowing
other PAM modules to pick it up from there.
Guenther
(This used to be commit b3ac5a586ba37b1122b0dc941dfee648fc4fa6d5)
Diffstat (limited to 'source3/nsswitch/pam_winbind.c')
-rw-r--r-- | source3/nsswitch/pam_winbind.c | 22 |
1 files changed, 18 insertions, 4 deletions
diff --git a/source3/nsswitch/pam_winbind.c b/source3/nsswitch/pam_winbind.c index f96dd0ee9b..1aef5c6c4a 100644 --- a/source3/nsswitch/pam_winbind.c +++ b/source3/nsswitch/pam_winbind.c @@ -503,13 +503,27 @@ static int winbind_auth_request(pam_handle_t * pamh, /* save the CIFS homedir for pam_cifs / pam_mount */ if (response.data.auth.info3.home_dir[0] != '\0') { - char *buf; - if (!asprintf(&buf, "%s", response.data.auth.info3.home_dir)) { - return PAM_BUF_ERR; + int ret2 = pam_set_data(pamh, PAM_WINBIND_HOMEDIR, + (void *) strdup(response.data.auth.info3.home_dir), + _pam_winbind_cleanup_func); + if (ret2) { + _pam_log_debug(ctrl, LOG_DEBUG, "Could not set data: %s", + pam_strerror(pamh, ret2)); } - pam_set_data( pamh, PAM_WINBIND_HOMEDIR, (void *)buf, _pam_winbind_cleanup_func); + } + + /* save the logon script path for other PAM modules */ + if (response.data.auth.info3.logon_script[0] != '\0') { + + int ret2 = pam_set_data(pamh, PAM_WINBIND_LOGONSCRIPT, + (void *) strdup(response.data.auth.info3.logon_script), + _pam_winbind_cleanup_func); + if (ret2) { + _pam_log_debug(ctrl, LOG_DEBUG, "Could not set data: %s", + pam_strerror(pamh, ret2)); + } } return ret; |