messaging: fix net command failure due to unhandled return code
authorDavid Mulder via samba-technical <samba-technical@lists.samba.org>
Wed, 7 Jun 2017 12:43:07 +0000 (06:43 -0600)
committerDavid Disseldorp <ddiss@samba.org>
Thu, 8 Jun 2017 06:04:05 +0000 (08:04 +0200)
messaging_init_internal() blanket returned NT_STATUS_INTERNAL_ERROR
instead of correctly changing the return code to an NTSTATUS code. Also
return more appropriate mem error.

Bug: https://bugzilla.samba.org/show_bug.cgi?id=12828

Signed-off-by: David Mulder <dmulder@suse.com>
Reviewed-by: Jeremy Allison <jra@samba.org>
Reviewed-by: David Disseldorp <ddiss@samba.org>
Autobuild-User(master): David Disseldorp <ddiss@samba.org>
Autobuild-Date(master): Thu Jun  8 08:04:05 CEST 2017 on sn-devel-144

source3/lib/messages.c

index d7ad49d7c309c5a07e02b979ce7182994c6d2b91..e0ef1f884614ccfb7ec50b935e33d2e5db89d9ef 100644 (file)
@@ -303,7 +303,7 @@ static NTSTATUS messaging_init_internal(TALLOC_CTX *mem_ctx,
                                             &ret);
        if (ctx->msg_dgm_ref == NULL) {
                DEBUG(2, ("messaging_dgm_ref failed: %s\n", strerror(ret)));
-               status = NT_STATUS_INTERNAL_ERROR;
+               status = map_nt_error_from_unix(ret);
                goto done;
        }
        talloc_set_destructor(ctx, messaging_context_destructor);
@@ -314,7 +314,7 @@ static NTSTATUS messaging_init_internal(TALLOC_CTX *mem_ctx,
                if (ret != 0) {
                        DEBUG(2, ("messaging_ctdbd_init failed: %s\n",
                                  strerror(ret)));
-                       status = NT_STATUS_INTERNAL_ERROR;
+                       status = map_nt_error_from_unix(ret);
                        goto done;
                }
        }
@@ -327,7 +327,7 @@ static NTSTATUS messaging_init_internal(TALLOC_CTX *mem_ctx,
                                          TDB_INCOMPATIBLE_HASH|TDB_CLEAR_IF_FIRST);
        if (ctx->names_db == NULL) {
                DBG_DEBUG("server_id_db_init failed\n");
-               status = NT_STATUS_INTERNAL_ERROR;
+               status = NT_STATUS_NO_MEMORY;
                goto done;
        }