svn commit: samba r16588 - in trunk/source/libads: .

jra at samba.org jra at samba.org
Wed Jun 28 01:21:50 GMT 2006


Author: jra
Date: 2006-06-28 01:21:49 +0000 (Wed, 28 Jun 2006)
New Revision: 16588

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

Log:
Fix Klocwork #1999. Although it should be impossible to
get duplicate OID's returned in the oids_out list it is
still good programming practice to clear out a malloc'ed
string before re-writing it (especially in a loop).
Jeremy

Modified:
   trunk/source/libads/ldap_schema.c


Changeset:
Modified: trunk/source/libads/ldap_schema.c
===================================================================
--- trunk/source/libads/ldap_schema.c	2006-06-28 01:11:17 UTC (rev 16587)
+++ trunk/source/libads/ldap_schema.c	2006-06-28 01:21:49 UTC (rev 16588)
@@ -283,22 +283,27 @@
 
 		if (strequal(ADS_ATTR_RFC2307_UIDNUMBER_OID, oids_out[i]) ||
 		    strequal(ADS_ATTR_SFU_UIDNUMBER_OID, oids_out[i])) {
+			SAFE_FREE(ads->schema.posix_uidnumber_attr);
 			ads->schema.posix_uidnumber_attr = SMB_STRDUP(names_out[i]);
 		}
 		if (strequal(ADS_ATTR_RFC2307_GIDNUMBER_OID, oids_out[i]) ||
 		    strequal(ADS_ATTR_SFU_GIDNUMBER_OID, oids_out[i])) {
+			SAFE_FREE(ads->schema.posix_gidnumber_attr);
 			ads->schema.posix_gidnumber_attr = SMB_STRDUP(names_out[i]);
 		}
 		if (strequal(ADS_ATTR_RFC2307_HOMEDIR_OID, oids_out[i]) ||
 		    strequal(ADS_ATTR_SFU_HOMEDIR_OID, oids_out[i])) {
+			SAFE_FREE(ads->schema.posix_homedir_attr);
 			ads->schema.posix_homedir_attr = SMB_STRDUP(names_out[i]);
 		}
 		if (strequal(ADS_ATTR_RFC2307_SHELL_OID, oids_out[i]) ||
 		    strequal(ADS_ATTR_SFU_SHELL_OID, oids_out[i])) {
+			SAFE_FREE(ads->schema.posix_shell_attr);
 			ads->schema.posix_shell_attr = SMB_STRDUP(names_out[i]);
 		}
 		if (strequal(ADS_ATTR_RFC2307_GECOS_OID, oids_out[i]) ||
 		    strequal(ADS_ATTR_SFU_GECOS_OID, oids_out[i])) {
+			SAFE_FREE(ads->schema.posix_gecos_attr);
 			ads->schema.posix_gecos_attr = SMB_STRDUP(names_out[i]);
 		}
 	}



More information about the samba-cvs mailing list