svn commit: samba r11354 - in branches/SAMBA_4_0/source/scripting/ejs: .

tridge at samba.org tridge at samba.org
Fri Oct 28 04:10:48 GMT 2005


Author: tridge
Date: 2005-10-28 04:10:47 +0000 (Fri, 28 Oct 2005)
New Revision: 11354

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

Log:

- generate a ejs error on bad ldif to add/modify

- fixed a double free error in ldb.close()

Modified:
   branches/SAMBA_4_0/source/scripting/ejs/smbcalls_ldb.c


Changeset:
Modified: branches/SAMBA_4_0/source/scripting/ejs/smbcalls_ldb.c
===================================================================
--- branches/SAMBA_4_0/source/scripting/ejs/smbcalls_ldb.c	2005-10-28 03:43:39 UTC (rev 11353)
+++ branches/SAMBA_4_0/source/scripting/ejs/smbcalls_ldb.c	2005-10-28 04:10:47 UTC (rev 11354)
@@ -129,7 +129,7 @@
 	const char *ldifstring;
 	struct ldb_context *ldb;
 	struct ldb_ldif *ldif;
-	int ret = 0;
+	int ret = 0, count=0;
 
 	if (argc != 1) {
 		ejsSetErrorMsg(eid, "ldb.add/modify invalid arguments");
@@ -148,11 +148,17 @@
 	}
 
 	while ((ldif = ldb_ldif_read_string(ldb, &ldifstring))) {
+		count++;
 		ret = fn(ldb, ldif->msg);
 		talloc_free(ldif);
 		if (ret != 0) break;
 	}
 
+	if (count == 0) {
+		ejsSetErrorMsg(eid, "ldb.add/modify invalid ldif");
+		return -1;
+	}
+
 	mpr_Return(eid, mprCreateBoolVar(ret == 0));
 	return 0;
 }
@@ -384,8 +390,6 @@
 		return -1;
 	}
 
-	talloc_free(ldb);
-
 	mprSetThisPtr(eid, "db", NULL);
 	mpr_Return(eid, mprCreateBoolVar(True));
 	return 0;



More information about the samba-cvs mailing list