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;