svn commit: samba r17366 - in branches: SAMBA_3_0/source/nsswitch SAMBA_3_0_23/source/nsswitch

gd at samba.org gd at samba.org
Tue Aug 1 15:31:17 GMT 2006


Author: gd
Date: 2006-08-01 15:31:16 +0000 (Tue, 01 Aug 2006)
New Revision: 17366

WebSVN: http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=rev&root=samba&rev=17366

Log:
Save the logon script path from the info3 in the PAM session allowing
other PAM modules to pick it up from there.

Guenther

Modified:
   branches/SAMBA_3_0/source/nsswitch/pam_winbind.c
   branches/SAMBA_3_0/source/nsswitch/pam_winbind.h
   branches/SAMBA_3_0_23/source/nsswitch/pam_winbind.c
   branches/SAMBA_3_0_23/source/nsswitch/pam_winbind.h


Changeset:
Modified: branches/SAMBA_3_0/source/nsswitch/pam_winbind.c
===================================================================
--- branches/SAMBA_3_0/source/nsswitch/pam_winbind.c	2006-08-01 15:17:18 UTC (rev 17365)
+++ branches/SAMBA_3_0/source/nsswitch/pam_winbind.c	2006-08-01 15:31:16 UTC (rev 17366)
@@ -503,15 +503,29 @@
 
 	/* 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;
 }
 

Modified: branches/SAMBA_3_0/source/nsswitch/pam_winbind.h
===================================================================
--- branches/SAMBA_3_0/source/nsswitch/pam_winbind.h	2006-08-01 15:17:18 UTC (rev 17365)
+++ branches/SAMBA_3_0/source/nsswitch/pam_winbind.h	2006-08-01 15:31:16 UTC (rev 17366)
@@ -108,6 +108,7 @@
 
 #define PAM_WINBIND_NEW_AUTHTOK_REQD "PAM_WINBIND_NEW_AUTHTOK_REQD"
 #define PAM_WINBIND_HOMEDIR "PAM_WINBIND_HOMEDIR"
+#define PAM_WINBIND_LOGONSCRIPT "PAM_WINBIND_LOGONSCRIPT"
 #define PAM_WINBIND_PWD_LAST_SET "PAM_WINBIND_PWD_LAST_SET"
 
 #define SECONDS_PER_DAY 86400

Modified: branches/SAMBA_3_0_23/source/nsswitch/pam_winbind.c
===================================================================
--- branches/SAMBA_3_0_23/source/nsswitch/pam_winbind.c	2006-08-01 15:17:18 UTC (rev 17365)
+++ branches/SAMBA_3_0_23/source/nsswitch/pam_winbind.c	2006-08-01 15:31:16 UTC (rev 17366)
@@ -485,15 +485,29 @@
 
 	/* 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;
 }
 

Modified: branches/SAMBA_3_0_23/source/nsswitch/pam_winbind.h
===================================================================
--- branches/SAMBA_3_0_23/source/nsswitch/pam_winbind.h	2006-08-01 15:17:18 UTC (rev 17365)
+++ branches/SAMBA_3_0_23/source/nsswitch/pam_winbind.h	2006-08-01 15:31:16 UTC (rev 17366)
@@ -108,6 +108,7 @@
 
 #define PAM_WINBIND_NEW_AUTHTOK_REQD "PAM_WINBIND_NEW_AUTHTOK_REQD"
 #define PAM_WINBIND_HOMEDIR "PAM_WINBIND_HOMEDIR"
+#define PAM_WINBIND_LOGONSCRIPT "PAM_WINBIND_LOGONSCRIPT"
 #define PAM_WINBIND_PWD_LAST_SET "PAM_WINBIND_PWD_LAST_SET"
 
 #define SECONDS_PER_DAY 86400



More information about the samba-cvs mailing list