In net_conf_import, start a transaction when importing a single share.
authorMartin Schwenke <martin@meltin.net>
Thu, 16 Apr 2009 00:25:29 +0000 (10:25 +1000)
committerMichael Adam <obnox@samba.org>
Thu, 16 Apr 2009 08:38:38 +0000 (10:38 +0200)
Commit d69c3db9d44ad5d9fd1f5d7a9499f3bd79ecfb47 caused the transaction
start to be conditional but the commit is still unconditional, so an
error occurs when importing a single share.

An alternate fix would be to return the transaction start to be
unconditional but then it would occur before other error checking.

Signed-off-by: Martin Schwenke <martin@meltin.net>
Signed-off-by: Michael Adam <obnox@samba.org>
source3/utils/net_conf.c

index 3fa547baf4115a22cfa9228daf298540f0fc30b6..663c5925c78fd5e33933ed4f47f1537667ffca35 100644 (file)
@@ -340,6 +340,14 @@ static int net_conf_import(struct net_context *c, struct smbconf_ctx *conf_ctx,
                if (!W_ERROR_IS_OK(werr)) {
                        goto cancel;
                }
+
+               werr = smbconf_transaction_start(conf_ctx);
+               if (!W_ERROR_IS_OK(werr)) {
+                       d_printf("error starting transaction: %s\n",
+                                win_errstr(werr));
+                       goto done;
+               }
+
                werr = import_process_service(c, conf_ctx, service);
                if (!W_ERROR_IS_OK(werr)) {
                        goto cancel;