svn commit: samba r23291 - in branches: SAMBA_3_0/source/nsswitch SAMBA_3_0_26/source/nsswitch

obnox at samba.org obnox at samba.org
Fri Jun 1 12:24:59 GMT 2007


Author: obnox
Date: 2007-06-01 12:24:57 +0000 (Fri, 01 Jun 2007)
New Revision: 23291

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

Log:
Undo the somewhat naive change of r23279:
The clear text presentaion of the sid in the ldap expression
does work with w2k3 but not with w2k....

Thanks to Guenther for advising me of this issue.

Michael


Modified:
   branches/SAMBA_3_0/source/nsswitch/winbindd_ads.c
   branches/SAMBA_3_0_26/source/nsswitch/winbindd_ads.c


Changeset:
Modified: branches/SAMBA_3_0/source/nsswitch/winbindd_ads.c
===================================================================
--- branches/SAMBA_3_0/source/nsswitch/winbindd_ads.c	2007-06-01 12:18:16 UTC (rev 23290)
+++ branches/SAMBA_3_0/source/nsswitch/winbindd_ads.c	2007-06-01 12:24:57 UTC (rev 23291)
@@ -901,6 +901,7 @@
 	ADS_STRUCT *ads = NULL;
 	char *ldap_exp;
 	NTSTATUS status = NT_STATUS_UNSUCCESSFUL;
+	char *sidbinstr;
 	char **members = NULL;
 	int i;
 	size_t num_members = 0;
@@ -939,14 +940,21 @@
 		goto done;
 	}
 
+	if ((sidbinstr = sid_binstring(group_sid)) == NULL) {
+		status = NT_STATUS_NO_MEMORY;
+		goto done;
+	}
+
 	/* search for all members of the group */
-	if (!(ldap_exp = talloc_asprintf(tmp_ctx, "(objectSid=%s)",
-					 sid_string_static(group_sid)))) 
+	if (!(ldap_exp = talloc_asprintf(tmp_ctx, "(objectSid=%s)", 
+					 sidbinstr))) 
 	{
+		SAFE_FREE(sidbinstr);
 		DEBUG(1, ("ads: lookup_groupmem: talloc_asprintf for ldap_exp failed!\n"));
 		status = NT_STATUS_NO_MEMORY;
 		goto done;
 	}
+	SAFE_FREE(sidbinstr);
 
 	args.control = ADS_EXTENDED_DN_OID;
 	args.val = ADS_EXTENDED_DN_HEX_STRING;

Modified: branches/SAMBA_3_0_26/source/nsswitch/winbindd_ads.c
===================================================================
--- branches/SAMBA_3_0_26/source/nsswitch/winbindd_ads.c	2007-06-01 12:18:16 UTC (rev 23290)
+++ branches/SAMBA_3_0_26/source/nsswitch/winbindd_ads.c	2007-06-01 12:24:57 UTC (rev 23291)
@@ -901,6 +901,7 @@
 	ADS_STRUCT *ads = NULL;
 	char *ldap_exp;
 	NTSTATUS status = NT_STATUS_UNSUCCESSFUL;
+	char *sidbinstr;
 	char **members = NULL;
 	int i;
 	size_t num_members = 0;
@@ -939,14 +940,21 @@
 		goto done;
 	}
 
+	if ((sidbinstr = sid_binstring(group_sid)) == NULL) {
+		status = NT_STATUS_NO_MEMORY;
+		goto done;
+	}
+
 	/* search for all members of the group */
-	if (!(ldap_exp = talloc_asprintf(tmp_ctx, "(objectSid=%s)",
-					 sid_string_static(group_sid)))) 
+	if (!(ldap_exp = talloc_asprintf(tmp_ctx, "(objectSid=%s)", 
+					 sidbinstr))) 
 	{
+		SAFE_FREE(sidbinstr);
 		DEBUG(1, ("ads: lookup_groupmem: talloc_asprintf for ldap_exp failed!\n"));
 		status = NT_STATUS_NO_MEMORY;
 		goto done;
 	}
+	SAFE_FREE(sidbinstr);
 
 	args.control = ADS_EXTENDED_DN_OID;
 	args.val = ADS_EXTENDED_DN_HEX_STRING;



More information about the samba-cvs mailing list