svn commit: samba r8084 - in branches/SAMBA_4_0/source/lib/ldb: common ldb_tdb

idra at samba.org idra at samba.org
Sat Jul 2 18:43:23 GMT 2005


Author: idra
Date: 2005-07-02 18:43:22 +0000 (Sat, 02 Jul 2005)
New Revision: 8084

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

Log:
do not leak memory on errors
Modified:
   branches/SAMBA_4_0/source/lib/ldb/common/ldb_dn.c
   branches/SAMBA_4_0/source/lib/ldb/ldb_tdb/ldb_tdb.c


Changeset:
Modified: branches/SAMBA_4_0/source/lib/ldb/common/ldb_dn.c
===================================================================
--- branches/SAMBA_4_0/source/lib/ldb/common/ldb_dn.c	2005-07-02 18:34:13 UTC (rev 8083)
+++ branches/SAMBA_4_0/source/lib/ldb/common/ldb_dn.c	2005-07-02 18:43:22 UTC (rev 8084)
@@ -37,8 +37,8 @@
 #include "includes.h"
 #include "ldb/include/ldb.h"
 #include "ldb/include/ldb_private.h"
+#include <ctype.h>
 
-
 #define LDB_DN_NULL_FAILED(x) if (!(x)) goto failed
 
 static int ldb_dn_is_valid_attribute_name(const char *name)

Modified: branches/SAMBA_4_0/source/lib/ldb/ldb_tdb/ldb_tdb.c
===================================================================
--- branches/SAMBA_4_0/source/lib/ldb/ldb_tdb/ldb_tdb.c	2005-07-02 18:34:13 UTC (rev 8083)
+++ branches/SAMBA_4_0/source/lib/ldb/ldb_tdb/ldb_tdb.c	2005-07-02 18:43:22 UTC (rev 8084)
@@ -56,6 +56,8 @@
 	TDB_DATA key;
 	char *key_str = NULL;
 	char *dn_folded = NULL;
+	struct ldb_dn *edn = NULL;
+	struct ldb_dn *cedn = NULL;
 
 	/*
 	  most DNs are case insensitive. The exception is index DNs for
@@ -71,8 +73,6 @@
 	if (*dn == '@') {
 		dn_folded = talloc_strdup(ldb, dn);
 	} else {
-		struct ldb_dn *edn, *cedn;
-
 		edn = ldb_dn_explode(ldb, dn);
 		if (!edn)
 			goto failed;
@@ -89,10 +89,6 @@
 		talloc_free(cedn);
 	}
 
-	if (!dn_folded) {
-		goto failed;
-	}
-
 	key_str = talloc_asprintf(ldb, "DN=%s", dn_folded);
 	talloc_free(dn_folded);
 
@@ -101,11 +97,13 @@
 	}
 
 	key.dptr = key_str;
-	key.dsize = strlen(key_str)+1;
+	key.dsize = strlen(key_str) + 1;
 
 	return key;
 
 failed:
+	talloc_free(edn);
+	talloc_free(cedn);
 	errno = ENOMEM;
 	key.dptr = NULL;
 	key.dsize = 0;



More information about the samba-cvs mailing list