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:28:34 +0000 (10:28 +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>
source/utils/net_conf.c

index dea6209c78e712b7be6161596e4cf4e18d0878cd..f6e3712bb8f1839f9def08e542958d20f605dddc 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",
+                                dos_errstr(werr));
+                       goto done;
+               }
+
                werr = import_process_service(c, conf_ctx, service);
                if (!W_ERROR_IS_OK(werr)) {
                        goto cancel;