svn commit: samba r22112 - in branches: SAMBA_3_0/source/libads SAMBA_3_0_25/source/libads

jra at samba.org jra at samba.org
Fri Apr 6 21:55:44 GMT 2007


Author: jra
Date: 2007-04-06 21:55:44 +0000 (Fri, 06 Apr 2007)
New Revision: 22112

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

Log:
Fix memleak pointed out by Steven Danneman <steven.danneman at isilon.com>.
Jeremy.

Modified:
   branches/SAMBA_3_0/source/libads/ldap.c
   branches/SAMBA_3_0_25/source/libads/ldap.c


Changeset:
Modified: branches/SAMBA_3_0/source/libads/ldap.c
===================================================================
--- branches/SAMBA_3_0/source/libads/ldap.c	2007-04-06 21:12:44 UTC (rev 22111)
+++ branches/SAMBA_3_0/source/libads/ldap.c	2007-04-06 21:55:44 UTC (rev 22112)
@@ -2258,7 +2258,6 @@
 		  LDAPMessage *msg, const char *field, SEC_DESC **sd)
 {
 	struct berval **values;
-	prs_struct      ps;
 	BOOL ret = False;
 
 	values = ldap_get_values_len(ads->ld, msg, field);
@@ -2266,11 +2265,13 @@
 	if (!values) return False;
 
 	if (values[0]) {
+		prs_struct ps;
 		prs_init(&ps, values[0]->bv_len, mem_ctx, UNMARSHALL);
 		prs_copy_data_in(&ps, values[0]->bv_val, values[0]->bv_len);
 		prs_set_offset(&ps,0);
 
 		ret = sec_io_desc("sd", sd, &ps, 1);
+		prs_mem_free(&ps);
 	}
 	
 	ldap_value_free_len(values);

Modified: branches/SAMBA_3_0_25/source/libads/ldap.c
===================================================================
--- branches/SAMBA_3_0_25/source/libads/ldap.c	2007-04-06 21:12:44 UTC (rev 22111)
+++ branches/SAMBA_3_0_25/source/libads/ldap.c	2007-04-06 21:55:44 UTC (rev 22112)
@@ -2258,7 +2258,6 @@
 		  LDAPMessage *msg, const char *field, SEC_DESC **sd)
 {
 	struct berval **values;
-	prs_struct      ps;
 	BOOL ret = False;
 
 	values = ldap_get_values_len(ads->ld, msg, field);
@@ -2266,11 +2265,13 @@
 	if (!values) return False;
 
 	if (values[0]) {
+		prs_struct ps;
 		prs_init(&ps, values[0]->bv_len, mem_ctx, UNMARSHALL);
 		prs_copy_data_in(&ps, values[0]->bv_val, values[0]->bv_len);
 		prs_set_offset(&ps,0);
 
 		ret = sec_io_desc("sd", sd, &ps, 1);
+		prs_mem_free(&ps);
 	}
 	
 	ldap_value_free_len(values);



More information about the samba-cvs mailing list