summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJelmer Vernooij <jelmer@samba.org>2008-01-18 03:00:00 +0100
committerJelmer Vernooij <jelmer@samba.org>2008-01-18 03:42:00 +0100
commitb5ba4910120e5350e48927cc0f5f06742ee02eb8 (patch)
tree9928db273316426ededaafe44b19195420ee7c80
parente490415e2e300452e152373eb79fb437fb11449d (diff)
downloadsamba-b5ba4910120e5350e48927cc0f5f06742ee02eb8.tar.gz
samba-b5ba4910120e5350e48927cc0f5f06742ee02eb8.tar.bz2
samba-b5ba4910120e5350e48927cc0f5f06742ee02eb8.zip
registry: Avoid mapping registry return codes: return the right value in the first place.
(This used to be commit 434e4857cec17d6d9e8983e151c170eed59fc6d1)
-rw-r--r--source4/lib/registry/local.c2
-rw-r--r--source4/lib/registry/samba.c2
-rw-r--r--source4/lib/registry/tests/registry.c2
-rw-r--r--source4/rpc_server/winreg/rpc_winreg.c7
4 files changed, 3 insertions, 10 deletions
diff --git a/source4/lib/registry/local.c b/source4/lib/registry/local.c
index fa59f25596..3e463100c9 100644
--- a/source4/lib/registry/local.c
+++ b/source4/lib/registry/local.c
@@ -140,7 +140,7 @@ WERROR local_get_predefined_key(struct registry_context *ctx,
}
if (mp == NULL)
- return WERR_NOT_FOUND;
+ return WERR_BADFILE;
*key = reg_import_hive_key(ctx, mp->key,
mp->path.predefined_key,
diff --git a/source4/lib/registry/samba.c b/source4/lib/registry/samba.c
index 02f3363bab..599385e73c 100644
--- a/source4/lib/registry/samba.c
+++ b/source4/lib/registry/samba.c
@@ -42,7 +42,7 @@ static WERROR mount_samba_hive(struct registry_context *ctx,
error = reg_open_hive(ctx, location, auth_info, creds, lp_ctx, &hive);
- if (W_ERROR_EQUAL(error, WERR_NOT_FOUND))
+ if (W_ERROR_EQUAL(error, WERR_BADFILE))
error = reg_open_ldb_file(ctx, location, auth_info,
creds, lp_ctx, &hive);
diff --git a/source4/lib/registry/tests/registry.c b/source4/lib/registry/tests/registry.c
index 59e31f55dc..06783e6a75 100644
--- a/source4/lib/registry/tests/registry.c
+++ b/source4/lib/registry/tests/registry.c
@@ -53,7 +53,7 @@ static bool test_get_predefined_unknown(struct torture_context *tctx,
WERROR error;
error = reg_get_predefined_key(rctx, 1337, &root);
- torture_assert_werr_equal(tctx, error, WERR_NOT_FOUND,
+ torture_assert_werr_equal(tctx, error, WERR_BADFILE,
"getting predefined key failed");
return true;
}
diff --git a/source4/rpc_server/winreg/rpc_winreg.c b/source4/rpc_server/winreg/rpc_winreg.c
index 3c00944d59..681e3b918f 100644
--- a/source4/rpc_server/winreg/rpc_winreg.c
+++ b/source4/rpc_server/winreg/rpc_winreg.c
@@ -356,13 +356,6 @@ static WERROR dcesrv_winreg_OpenKey(struct dcesrv_call_state *dce_call,
r->out.handle = &newh->wire_handle;
} else {
talloc_free(newh);
- /*
- * Windows expects WERR_BADFILE when a particular key
- * is not found. If we receive WERR_NOT_FOUND from the lower
- * layer calls, translate it here to return what is expected.
- */
- if (W_ERROR_EQUAL(result, WERR_NOT_FOUND))
- return WERR_BADFILE;
}
return result;