Author: abartlet
Date: 2007-12-04 03:37:41 +0000 (Tue, 04 Dec 2007)
New Revision: 26282

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

Log:
These modules expect errors, but if we don't wipe the error string, we
get phony error strings at the caller, which is very confusing.

Andrew Bartlett

Modified:
   branches/SAMBA_4_0/source/dsdb/samdb/ldb_modules/objectclass.c
   branches/SAMBA_4_0/source/dsdb/samdb/ldb_modules/subtree_delete.c


Changeset:
Modified: branches/SAMBA_4_0/source/dsdb/samdb/ldb_modules/objectclass.c
===================================================================
--- branches/SAMBA_4_0/source/dsdb/samdb/ldb_modules/objectclass.c      
2007-12-04 03:13:12 UTC (rev 26281)
+++ branches/SAMBA_4_0/source/dsdb/samdb/ldb_modules/objectclass.c      
2007-12-04 03:37:41 UTC (rev 26282)
@@ -453,6 +453,9 @@
        if (ac->search_res == NULL) {
                if (ldb_dn_compare(ldb_get_root_basedn(ac->module->ldb), 
ac->orig_req->op.add.message->dn) == 0) {
                        /* Allow the tree to be started */
+                       
+                       /* but don't keep any error string, it's meaningless */
+                       ldb_set_errstring(ac->module->ldb, NULL);
                } else {
                        ldb_asprintf_errstring(ac->module->ldb, "objectclass: 
Cannot add %s, parent does not exist!", 
                                               
ldb_dn_get_linearized(ac->orig_req->op.add.message->dn));

Modified: branches/SAMBA_4_0/source/dsdb/samdb/ldb_modules/subtree_delete.c
===================================================================
--- branches/SAMBA_4_0/source/dsdb/samdb/ldb_modules/subtree_delete.c   
2007-12-04 03:13:12 UTC (rev 26281)
+++ branches/SAMBA_4_0/source/dsdb/samdb/ldb_modules/subtree_delete.c   
2007-12-04 03:37:41 UTC (rev 26282)
@@ -89,6 +89,10 @@
                }
                *req = *ac->orig_req;
                
+               /* Ensure any (io) errors during the search for
+                * children don't propgate back in the error string */
+               ldb_set_errstr(ac->module->ldb, NULL);
+
                ac->down_req = req;
                ac->step = SD_DO_DEL;
                return ldb_next_request(ac->module, req);

Reply via email to