s3:registry: in deletekey_recursive, fix return code upon error.
[obnox/samba-ctdb.git] / source3 / registry / reg_api.c
index ed2f44163f2ee63e2c5d8fa4a3f9f332628ed551..a7e8ac58fd154cc8262a31e644515e0dabb3a401 100644 (file)
@@ -1122,14 +1122,21 @@ static WERROR reg_deletekey_recursive_trans(struct registry_key *parent,
        werr = reg_deletekey_recursive_internal(parent, path, del_key);
 
        if (!W_ERROR_IS_OK(werr)) {
+               WERROR werr2;
+
                DEBUG(1, (__location__ " failed to delete key '%s' from key "
                          "'%s': %s\n", path, parent->key->name,
                          win_errstr(werr)));
-               werr = regdb_transaction_cancel();
-               if (!W_ERROR_IS_OK(werr)) {
+
+               werr2 = regdb_transaction_cancel();
+               if (!W_ERROR_IS_OK(werr2)) {
                        DEBUG(0, ("reg_deletekey_recursive_trans: "
                                  "error cancelling transaction: %s\n",
-                                 win_errstr(werr)));
+                                 win_errstr(werr2)));
+                       /*
+                        * return the original werr or the
+                        * error from cancelling the transaction?
+                        */
                }
        } else {
                werr = regdb_transaction_commit();