[SCM] Samba Shared Repository - branch master updated
Stefan Metzmacher
metze at samba.org
Mon Mar 29 08:43:37 MDT 2010
The branch, master has been updated
via e230c8d... pidl:Samba4/Client: don't mix rpc and application NTSTATUS errors anymore for the new bindings
via 979c50e... s4:torture/rpc/samba3rpc.c: add explicit check for NTSTATUS r.out.result
via 733701a... s4:libnet/libnet_passwd.c: add explicit check for NTSTATUS r.out.result
via cd3ae92... s4:libnet/libnet_samsync.c: add explicit check for NTSTATUS r.out.result
via d0efef3... s4:libnet/libnet_join.c: add explicit check for NTSTATUS r.out.result
via 12ee027... s4:libcli/util/clilsa.c: add explicit check for NTSTATUS r.out.result
via 10e46e5... s4:torture/rpc/lsa.c: add explicit check for NTSTATUS r.out.result
via 1a4d9b9... s4:torture/rpc/samr.c: add explicit check for NTSTATUS r.out.result
via e531b52... s4:torture/rpc/handles.c: add explicit check for NTSTATUS r.out.result
via 3398636... s4:torture/rpc/samr_accessmask.c: add explicit check for NTSTATUS r.out.result
via 08177e9... s4:torture/rpc/samsync.c: add explicit check for NTSTATUS r.out.result
via 5dcb1e5... s4:torture/rpc/samlogon.c: add explicit check for NTSTATUS r.out.result
via 2f7f725... s4:torture/rpc/netlogon.c: add explicit check for NTSTATUS r.out.result
via 8ac42bc... s4:torture/rpc/lsa_lookup.c:add explicit check for NTSTATUS r.out.result
via 1248adb... s4:torture/libnet:add explicit check for NTSTATUS r.out.result
via 2d35523... s4:torture/rpc/schannel.c: add explicit check for NTSTATUS r.out.result
via 940c6ab... s4:torture/rpc/remote_pac.c: add explicit check for NTSTATUS r.out.result
via a154bb5... s4:torture/rpc/testjoin.c: add explicit check for NTSTATUS r.out.result
via 959a128... s4:torture/rpc/session_key.c: add explicit check for NTSTATUS r.out.result
via 583c7cb... s4:torture/rpc/eventlog.c: add explicit check for NTSTATUS r.out.result
via 159ca62... s4:torture/rpc/unixinfo.c: add explicit check for NTSTATUS r.out.result
via 1184ef6... s4:torture/ntp: add explicit check for NTSTATUS r.out.result
via 0590e7e... s4:torture/rpc/atsvc.c: add explicit check for NTSTATUS r.out.result
via fd94954... s4:torture/rpc/echo.c: remove NTSTATUS status variables
via 870a21b... s4:torture/rpc/echo.c: add explicit check for NTSTATUS r.out.result
from 8b1651c... s3: Fix bug 7212, "getent group does not return group members"
http://gitweb.samba.org/?p=samba.git;a=shortlog;h=master
- Log -----------------------------------------------------------------
commit e230c8dd2441181963c6df678be06cdaaf6cb822
Author: Stefan Metzmacher <metze at samba.org>
Date: Sat Mar 27 12:48:21 2010 +0100
pidl:Samba4/Client: don't mix rpc and application NTSTATUS errors anymore for the new bindings
The new dcerpc_binding_handle based client stubs don't mix error codes anymore,
while the old dcerpc_pipe based ones still do to keep OpenChange happy for now.
metze
commit 979c50eff7a7a1611e27f0e26db821416d50110f
Author: Günther Deschner <gd at samba.org>
Date: Wed Mar 24 13:14:09 2010 +0100
s4:torture/rpc/samba3rpc.c: add explicit check for NTSTATUS r.out.result
Guenther
Signed-off-by: Stefan Metzmacher <metze at samba.org>
commit 733701ae9b98b79685dad2679f8172a981634b99
Author: Stefan Metzmacher <metze at samba.org>
Date: Wed Mar 17 20:14:53 2010 +0100
s4:libnet/libnet_passwd.c: add explicit check for NTSTATUS r.out.result
metze
commit cd3ae926e7f54b29eb733e42aafd1a1b6c45dc38
Author: Stefan Metzmacher <metze at samba.org>
Date: Wed Mar 17 20:31:15 2010 +0100
s4:libnet/libnet_samsync.c: add explicit check for NTSTATUS r.out.result
metze
commit d0efef3f864f36eefe6b0abd152c4614324f2fc2
Author: Stefan Metzmacher <metze at samba.org>
Date: Wed Mar 17 20:30:57 2010 +0100
s4:libnet/libnet_join.c: add explicit check for NTSTATUS r.out.result
metze
commit 12ee027106009664bd6e138df819250e99af5188
Author: Günther Deschner <gd at samba.org>
Date: Tue Mar 23 15:04:25 2010 +0100
s4:libcli/util/clilsa.c: add explicit check for NTSTATUS r.out.result
Guenther
Signed-off-by: Stefan Metzmacher <metze at samba.org>
commit 10e46e52abde3095d575db39cc3fd60ae6eeb264
Author: Stefan Metzmacher <metze at samba.org>
Date: Wed Mar 24 09:06:54 2010 +0100
s4:torture/rpc/lsa.c: add explicit check for NTSTATUS r.out.result
metze
commit 1a4d9b95eec6983fbc28a69f1b4b3049c2f27397
Author: Günther Deschner <gd at samba.org>
Date: Fri Mar 19 00:38:04 2010 +0100
s4:torture/rpc/samr.c: add explicit check for NTSTATUS r.out.result
Guenther
Signed-off-by: Stefan Metzmacher <metze at samba.org>
commit e531b52ab965b7f258b475da9639330e3c49c8cc
Author: Günther Deschner <gd at samba.org>
Date: Fri Mar 19 15:35:36 2010 +0100
s4:torture/rpc/handles.c: add explicit check for NTSTATUS r.out.result
Guenther
Signed-off-by: Stefan Metzmacher <metze at samba.org>
commit 3398636a3bf2e55adda01eb92fc7aaf5c03adb2a
Author: Günther Deschner <gd at samba.org>
Date: Fri Mar 19 12:23:37 2010 +0100
s4:torture/rpc/samr_accessmask.c: add explicit check for NTSTATUS r.out.result
Guenther
Signed-off-by: Stefan Metzmacher <metze at samba.org>
commit 08177e98b2237b9428bfc28c4a0ebdfd34eba49a
Author: Stefan Metzmacher <metze at samba.org>
Date: Sat Mar 27 10:45:17 2010 +0100
s4:torture/rpc/samsync.c: add explicit check for NTSTATUS r.out.result
commit 5dcb1e5030e07922405bb0175d3459f6ed96054c
Author: Günther Deschner <gd at samba.org>
Date: Fri Mar 19 14:56:52 2010 +0100
s4:torture/rpc/samlogon.c: add explicit check for NTSTATUS r.out.result
Guenther
Signed-off-by: Stefan Metzmacher <metze at samba.org>
commit 2f7f7257d938b9f223399df8d0cbf31b91a3f55a
Author: Günther Deschner <gd at samba.org>
Date: Fri Mar 19 14:45:38 2010 +0100
s4:torture/rpc/netlogon.c: add explicit check for NTSTATUS r.out.result
Guenther
Signed-off-by: Stefan Metzmacher <metze at samba.org>
commit 8ac42bc0dc1b946893c9cc7a5a8555a1ca89819a
Author: Günther Deschner <gd at samba.org>
Date: Fri Mar 19 00:09:46 2010 +0100
s4:torture/rpc/lsa_lookup.c:add explicit check for NTSTATUS r.out.result
Guenther
Signed-off-by: Stefan Metzmacher <metze at samba.org>
commit 1248adb2c5716d26323e6e9bb1ac81103701d908
Author: Günther Deschner <gd at samba.org>
Date: Tue Mar 23 15:20:16 2010 +0100
s4:torture/libnet:add explicit check for NTSTATUS r.out.result
Guenther
Signed-off-by: Stefan Metzmacher <metze at samba.org>
commit 2d35523f24f7806d41d785028e09f9cb6bbfaf56
Author: Günther Deschner <gd at samba.org>
Date: Fri Mar 19 14:17:18 2010 +0100
s4:torture/rpc/schannel.c: add explicit check for NTSTATUS r.out.result
Guenther
Signed-off-by: Stefan Metzmacher <metze at samba.org>
commit 940c6ab29f21862ba21d313223ce73c6e3ea6401
Author: Günther Deschner <gd at samba.org>
Date: Fri Mar 19 14:48:36 2010 +0100
s4:torture/rpc/remote_pac.c: add explicit check for NTSTATUS r.out.result
Guenther
Signed-off-by: Stefan Metzmacher <metze at samba.org>
commit a154bb56297c7bdfe7d7505afc409e0333100770
Author: Günther Deschner <gd at samba.org>
Date: Fri Mar 19 13:55:35 2010 +0100
s4:torture/rpc/testjoin.c: add explicit check for NTSTATUS r.out.result
Guenther
Signed-off-by: Stefan Metzmacher <metze at samba.org>
commit 959a128c7b9303b59e92273b01fefde02d752015
Author: Günther Deschner <gd at samba.org>
Date: Fri Mar 19 00:16:29 2010 +0100
s4:torture/rpc/session_key.c: add explicit check for NTSTATUS r.out.result
Guenther
Signed-off-by: Stefan Metzmacher <metze at samba.org>
commit 583c7cbd4c70be4f8e4d1c28fb7bba42c5d3c05d
Author: Günther Deschner <gd at samba.org>
Date: Fri Mar 19 12:57:54 2010 +0100
s4:torture/rpc/eventlog.c: add explicit check for NTSTATUS r.out.result
Guenther
Signed-off-by: Stefan Metzmacher <metze at samba.org>
commit 159ca620946951b03431ef57623552abcea6b2f6
Author: Günther Deschner <gd at samba.org>
Date: Fri Mar 19 00:21:01 2010 +0100
s4:torture/rpc/unixinfo.c: add explicit check for NTSTATUS r.out.result
Guenther
Signed-off-by: Stefan Metzmacher <metze at samba.org>
commit 1184ef6672347e6e446a485b992249f051a3873c
Author: Günther Deschner <gd at samba.org>
Date: Tue Mar 23 15:19:25 2010 +0100
s4:torture/ntp: add explicit check for NTSTATUS r.out.result
Guenther
Signed-off-by: Stefan Metzmacher <metze at samba.org>
commit 0590e7ef3685d629057971cf132838bf7e223ee3
Author: Günther Deschner <gd at samba.org>
Date: Fri Mar 19 12:26:27 2010 +0100
s4:torture/rpc/atsvc.c: add explicit check for NTSTATUS r.out.result
Guenther
Signed-off-by: Stefan Metzmacher <metze at samba.org>
commit fd9495491d8cdefc4bdbd20d1881f43c119537c2
Author: Stefan Metzmacher <metze at sernet.private>
Date: Wed Mar 24 09:45:21 2010 +0100
s4:torture/rpc/echo.c: remove NTSTATUS status variables
metze
commit 870a21b3ecc11b16f09b59440dc9e42b09f807d3
Author: Stefan Metzmacher <metze at sernet.private>
Date: Wed Mar 24 09:31:17 2010 +0100
s4:torture/rpc/echo.c: add explicit check for NTSTATUS r.out.result
metze
-----------------------------------------------------------------------
Summary of changes:
pidl/lib/Parse/Pidl/Samba4/NDR/Client.pm | 17 +-
source4/libcli/util/clilsa.c | 34 +-
source4/libnet/libnet_join.c | 30 +
source4/libnet/libnet_passwd.c | 36 +
source4/libnet/libnet_samsync.c | 3 +
source4/torture/libnet/domain.c | 11 +-
source4/torture/libnet/libnet_domain.c | 71 +-
source4/torture/libnet/libnet_group.c | 111 ++--
source4/torture/libnet/libnet_user.c | 120 ++--
source4/torture/libnet/utils.c | 117 ++--
source4/torture/ntp/ntp_signd.c | 16 +-
source4/torture/rpc/atsvc.c | 28 +-
source4/torture/rpc/echo.c | 73 +-
source4/torture/rpc/eventlog.c | 80 ++-
source4/torture/rpc/handles.c | 100 ++-
source4/torture/rpc/lsa.c | 667 ++++++++-------
source4/torture/rpc/lsa_lookup.c | 28 +-
source4/torture/rpc/netlogon.c | 214 +++---
source4/torture/rpc/remote_pac.c | 25 +-
source4/torture/rpc/samba3rpc.c | 152 ++++-
source4/torture/rpc/samlogon.c | 49 +-
source4/torture/rpc/samr.c | 1327 +++++++++++++++++-------------
source4/torture/rpc/samr_accessmask.c | 130 ++--
source4/torture/rpc/samsync.c | 262 ++++---
source4/torture/rpc/schannel.c | 48 +-
source4/torture/rpc/session_key.c | 25 +-
source4/torture/rpc/testjoin.c | 53 ++-
source4/torture/rpc/unixinfo.c | 25 +-
28 files changed, 2273 insertions(+), 1579 deletions(-)
Changeset truncated at 500 lines:
diff --git a/pidl/lib/Parse/Pidl/Samba4/NDR/Client.pm b/pidl/lib/Parse/Pidl/Samba4/NDR/Client.pm
index aa9dad9..43fe611 100644
--- a/pidl/lib/Parse/Pidl/Samba4/NDR/Client.pm
+++ b/pidl/lib/Parse/Pidl/Samba4/NDR/Client.pm
@@ -280,7 +280,22 @@ sub ParseFunction_r_Sync($$$)
$res .= "\t\tstruct dcerpc_pipe);\n";
$res .= "\n";
- $res .= "\treturn dcerpc_$name(p, mem_ctx, r);\n";
+ $res .= "
+ NTSTATUS status;
+
+ if (p->conn->flags & DCERPC_DEBUG_PRINT_IN) {
+ NDR_PRINT_IN_DEBUG($name, r);
+ }
+
+ status = dcerpc_ndr_request(p, NULL, &ndr_table_$interface->{NAME},
+ NDR_$uname, mem_ctx, r);
+
+ if (NT_STATUS_IS_OK(status) && (p->conn->flags & DCERPC_DEBUG_PRINT_OUT)) {
+ NDR_PRINT_OUT_DEBUG($name, r);
+ }
+ return status;
+";
+
$res .= "}\n";
$res .= "\n";
}
diff --git a/source4/libcli/util/clilsa.c b/source4/libcli/util/clilsa.c
index fda8aa7..50435cf 100644
--- a/source4/libcli/util/clilsa.c
+++ b/source4/libcli/util/clilsa.c
@@ -125,6 +125,11 @@ static NTSTATUS smblsa_connect(struct smbcli_state *cli)
return status;
}
+ if (!NT_STATUS_IS_OK(r.out.result)) {
+ talloc_free(lsa);
+ return r.out.result;
+ }
+
cli->lsa = lsa;
return NT_STATUS_OK;
@@ -150,7 +155,12 @@ NTSTATUS smblsa_sid_privileges(struct smbcli_state *cli, struct dom_sid *sid,
r.in.sid = sid;
r.out.rights = rights;
- return dcerpc_lsa_EnumAccountRights_r(cli->lsa->pipe->binding_handle, mem_ctx, &r);
+ status = dcerpc_lsa_EnumAccountRights_r(cli->lsa->pipe->binding_handle, mem_ctx, &r);
+ if (!NT_STATUS_IS_OK(status)) {
+ return status;
+ }
+
+ return r.out.result;
}
@@ -239,6 +249,10 @@ NTSTATUS smblsa_lookup_sid(struct smbcli_state *cli,
talloc_free(mem_ctx2);
return status;
}
+ if (!NT_STATUS_IS_OK(r.out.result)) {
+ talloc_free(mem_ctx2);
+ return r.out.result;
+ }
if (names.count != 1) {
talloc_free(mem_ctx2);
return NT_STATUS_UNSUCCESSFUL;
@@ -296,6 +310,10 @@ NTSTATUS smblsa_lookup_name(struct smbcli_state *cli,
talloc_free(mem_ctx2);
return status;
}
+ if (!NT_STATUS_IS_OK(r.out.result)) {
+ talloc_free(mem_ctx2);
+ return r.out.result;
+ }
if (sids.count != 1) {
talloc_free(mem_ctx2);
return NT_STATUS_UNSUCCESSFUL;
@@ -332,7 +350,12 @@ NTSTATUS smblsa_sid_add_privileges(struct smbcli_state *cli, struct dom_sid *sid
r.in.sid = sid;
r.in.rights = rights;
- return dcerpc_lsa_AddAccountRights_r(cli->lsa->pipe->binding_handle, mem_ctx, &r);
+ status = dcerpc_lsa_AddAccountRights_r(cli->lsa->pipe->binding_handle, mem_ctx, &r);
+ if (!NT_STATUS_IS_OK(status)) {
+ return status;
+ }
+
+ return r.out.result;
}
/*
@@ -355,5 +378,10 @@ NTSTATUS smblsa_sid_del_privileges(struct smbcli_state *cli, struct dom_sid *sid
r.in.remove_all = 0;
r.in.rights = rights;
- return dcerpc_lsa_RemoveAccountRights_r(cli->lsa->pipe->binding_handle, mem_ctx, &r);
+ status = dcerpc_lsa_RemoveAccountRights_r(cli->lsa->pipe->binding_handle, mem_ctx, &r);
+ if (!NT_STATUS_IS_OK(status)) {
+ return status;
+ }
+
+ return r.out.result;
}
diff --git a/source4/libnet/libnet_join.c b/source4/libnet/libnet_join.c
index cf0c51b..f5cbda0 100644
--- a/source4/libnet/libnet_join.c
+++ b/source4/libnet/libnet_join.c
@@ -540,6 +540,9 @@ NTSTATUS libnet_JoinDomain(struct libnet_context *ctx, TALLOC_CTX *mem_ctx, stru
/* 2. do a samr_Connect to get a policy handle */
status = dcerpc_samr_Connect_r(samr_pipe->binding_handle, tmp_ctx, &sc);
+ if (NT_STATUS_IS_OK(status) && !NT_STATUS_IS_OK(sc.out.result)) {
+ status = sc.out.result;
+ }
if (!NT_STATUS_IS_OK(status)) {
r->out.error_string = talloc_asprintf(mem_ctx,
"samr_Connect failed: %s",
@@ -570,6 +573,9 @@ NTSTATUS libnet_JoinDomain(struct libnet_context *ctx, TALLOC_CTX *mem_ctx, stru
l.out.sid = &sid;
status = dcerpc_samr_LookupDomain_r(samr_pipe->binding_handle, tmp_ctx, &l);
+ if (NT_STATUS_IS_OK(status) && !NT_STATUS_IS_OK(l.out.result)) {
+ status = l.out.result;
+ }
if (!NT_STATUS_IS_OK(status)) {
r->out.error_string = talloc_asprintf(mem_ctx,
"SAMR LookupDomain failed: %s",
@@ -589,6 +595,9 @@ NTSTATUS libnet_JoinDomain(struct libnet_context *ctx, TALLOC_CTX *mem_ctx, stru
/* do a samr_OpenDomain to get a domain handle */
status = dcerpc_samr_OpenDomain_r(samr_pipe->binding_handle, tmp_ctx, &od);
+ if (NT_STATUS_IS_OK(status) && !NT_STATUS_IS_OK(od.out.result)) {
+ status = od.out.result;
+ }
if (!NT_STATUS_IS_OK(status)) {
r->out.error_string = talloc_asprintf(mem_ctx,
"samr_OpenDomain for [%s] failed: %s",
@@ -611,6 +620,9 @@ NTSTATUS libnet_JoinDomain(struct libnet_context *ctx, TALLOC_CTX *mem_ctx, stru
/* do a samr_CreateUser2 to get an account handle, or an error */
cu_status = dcerpc_samr_CreateUser2_r(samr_pipe->binding_handle, tmp_ctx, &cu);
+ if (NT_STATUS_IS_OK(cu_status) && !NT_STATUS_IS_OK(cu.out.result)) {
+ cu_status = cu.out.result;
+ }
status = cu_status;
if (NT_STATUS_EQUAL(status, NT_STATUS_USER_EXISTS)) {
/* prepare samr_LookupNames */
@@ -628,6 +640,9 @@ NTSTATUS libnet_JoinDomain(struct libnet_context *ctx, TALLOC_CTX *mem_ctx, stru
/* 5. do a samr_LookupNames to get the users rid */
status = dcerpc_samr_LookupNames_r(samr_pipe->binding_handle, tmp_ctx, &ln);
+ if (NT_STATUS_IS_OK(status) && !NT_STATUS_IS_OK(ln.out.result)) {
+ status = ln.out.result;
+ }
if (!NT_STATUS_IS_OK(status)) {
r->out.error_string = talloc_asprintf(mem_ctx,
"samr_LookupNames for [%s] failed: %s",
@@ -656,6 +671,9 @@ NTSTATUS libnet_JoinDomain(struct libnet_context *ctx, TALLOC_CTX *mem_ctx, stru
/* 6. do a samr_OpenUser to get a user handle */
status = dcerpc_samr_OpenUser_r(samr_pipe->binding_handle, tmp_ctx, &ou);
+ if (NT_STATUS_IS_OK(status) && !NT_STATUS_IS_OK(ou.out.result)) {
+ status = ou.out.result;
+ }
if (!NT_STATUS_IS_OK(status)) {
r->out.error_string = talloc_asprintf(mem_ctx,
"samr_OpenUser for [%s] failed: %s",
@@ -670,6 +688,9 @@ NTSTATUS libnet_JoinDomain(struct libnet_context *ctx, TALLOC_CTX *mem_ctx, stru
d.in.user_handle = u_handle;
d.out.user_handle = u_handle;
status = dcerpc_samr_DeleteUser_r(samr_pipe->binding_handle, mem_ctx, &d);
+ if (NT_STATUS_IS_OK(status) && !NT_STATUS_IS_OK(d.out.result)) {
+ status = d.out.result;
+ }
if (!NT_STATUS_IS_OK(status)) {
r->out.error_string = talloc_asprintf(mem_ctx,
"samr_DeleteUser (for recreate) of [%s] failed: %s",
@@ -683,6 +704,9 @@ NTSTATUS libnet_JoinDomain(struct libnet_context *ctx, TALLOC_CTX *mem_ctx, stru
/* &cu filled in above */
status = dcerpc_samr_CreateUser2_r(samr_pipe->binding_handle, tmp_ctx, &cu);
+ if (NT_STATUS_IS_OK(status) && !NT_STATUS_IS_OK(cu.out.result)) {
+ status = cu.out.result;
+ }
if (!NT_STATUS_IS_OK(status)) {
r->out.error_string = talloc_asprintf(mem_ctx,
"samr_CreateUser2 (recreate) for [%s] failed: %s",
@@ -705,6 +729,9 @@ NTSTATUS libnet_JoinDomain(struct libnet_context *ctx, TALLOC_CTX *mem_ctx, stru
qui.out.info = &uinfo;
status = dcerpc_samr_QueryUserInfo_r(samr_pipe->binding_handle, tmp_ctx, &qui);
+ if (NT_STATUS_IS_OK(status) && !NT_STATUS_IS_OK(qui.out.result)) {
+ status = qui.out.result;
+ }
if (!NT_STATUS_IS_OK(status)) {
r->out.error_string = talloc_asprintf(mem_ctx,
"samr_QueryUserInfo for [%s] failed: %s",
@@ -790,6 +817,9 @@ NTSTATUS libnet_JoinDomain(struct libnet_context *ctx, TALLOC_CTX *mem_ctx, stru
pwp.out.info = &info;
status = dcerpc_samr_GetUserPwInfo_r(samr_pipe->binding_handle, tmp_ctx, &pwp);
+ if (NT_STATUS_IS_OK(status) && !NT_STATUS_IS_OK(pwp.out.result)) {
+ status = pwp.out.result;
+ }
if (NT_STATUS_IS_OK(status)) {
policy_min_pw_len = pwp.out.info->min_password_length;
}
diff --git a/source4/libnet/libnet_passwd.c b/source4/libnet/libnet_passwd.c
index 3997fb2..93d126f 100644
--- a/source4/libnet/libnet_passwd.c
+++ b/source4/libnet/libnet_passwd.c
@@ -103,6 +103,9 @@ static NTSTATUS libnet_ChangePassword_samr(struct libnet_context *ctx, TALLOC_CT
/* 2. try samr_ChangePasswordUser3 */
status = dcerpc_samr_ChangePasswordUser3_r(c.out.dcerpc_pipe->binding_handle, mem_ctx, &pw3);
if (!NT_STATUS_EQUAL(status, NT_STATUS_NET_WRITE_FAULT)) {
+ if (NT_STATUS_IS_OK(status) && !NT_STATUS_IS_OK(pw3.out.result)) {
+ status = pw3.out.result;
+ }
if (!NT_STATUS_IS_OK(status)) {
r->samr.out.error_string = talloc_asprintf(mem_ctx,
"samr_ChangePasswordUser3 failed: %s",
@@ -135,6 +138,9 @@ static NTSTATUS libnet_ChangePassword_samr(struct libnet_context *ctx, TALLOC_CT
/* 3. try samr_ChangePasswordUser2 */
status = dcerpc_samr_ChangePasswordUser2_r(c.out.dcerpc_pipe->binding_handle, mem_ctx, &pw2);
if (!NT_STATUS_EQUAL(status, NT_STATUS_NET_WRITE_FAULT)) {
+ if (NT_STATUS_IS_OK(status) && !NT_STATUS_IS_OK(pw2.out.result)) {
+ status = pw2.out.result;
+ }
if (!NT_STATUS_IS_OK(status)) {
r->samr.out.error_string = talloc_asprintf(mem_ctx,
"samr_ChangePasswordUser2 for '%s\\%s' failed: %s",
@@ -161,6 +167,9 @@ static NTSTATUS libnet_ChangePassword_samr(struct libnet_context *ctx, TALLOC_CT
/* 4. try samr_OemChangePasswordUser2 */
status = dcerpc_samr_OemChangePasswordUser2_r(c.out.dcerpc_pipe->binding_handle, mem_ctx, &oe2);
if (!NT_STATUS_EQUAL(status, NT_STATUS_NET_WRITE_FAULT)) {
+ if (NT_STATUS_IS_OK(status) && !NT_STATUS_IS_OK(oe2.out.result)) {
+ status = oe2.out.result;
+ }
if (!NT_STATUS_IS_OK(oe2.out.result)) {
r->samr.out.error_string = talloc_asprintf(mem_ctx,
"samr_OemChangePasswordUser2 for '%s\\%s' failed: %s",
@@ -301,6 +310,9 @@ static NTSTATUS libnet_SetPassword_samr_handle_26(struct libnet_context *ctx, TA
/* 7. try samr_SetUserInfo2 level 26 to set the password */
status = dcerpc_samr_SetUserInfo2_r(r->samr_handle.in.dcerpc_pipe->binding_handle, mem_ctx, &sui);
/* check result of samr_SetUserInfo2 level 26 */
+ if (NT_STATUS_IS_OK(status) && !NT_STATUS_IS_OK(sui.out.result)) {
+ status = sui.out.result;
+ }
if (!NT_STATUS_IS_OK(status)) {
r->samr_handle.out.error_string
= talloc_asprintf(mem_ctx,
@@ -354,6 +366,9 @@ static NTSTATUS libnet_SetPassword_samr_handle_25(struct libnet_context *ctx, TA
/* 8. try samr_SetUserInfo2 level 25 to set the password */
status = dcerpc_samr_SetUserInfo2_r(r->samr_handle.in.dcerpc_pipe->binding_handle, mem_ctx, &sui);
+ if (NT_STATUS_IS_OK(status) && !NT_STATUS_IS_OK(sui.out.result)) {
+ status = sui.out.result;
+ }
if (!NT_STATUS_IS_OK(status)) {
r->samr_handle.out.error_string
= talloc_asprintf(mem_ctx,
@@ -395,6 +410,9 @@ static NTSTATUS libnet_SetPassword_samr_handle_24(struct libnet_context *ctx, TA
/* 9. try samr_SetUserInfo2 level 24 to set the password */
status = dcerpc_samr_SetUserInfo2_r(r->samr_handle.in.dcerpc_pipe->binding_handle, mem_ctx, &sui);
+ if (NT_STATUS_IS_OK(status) && !NT_STATUS_IS_OK(sui.out.result)) {
+ status = sui.out.result;
+ }
if (!NT_STATUS_IS_OK(status)) {
r->samr_handle.out.error_string
= talloc_asprintf(mem_ctx,
@@ -438,6 +456,9 @@ static NTSTATUS libnet_SetPassword_samr_handle_23(struct libnet_context *ctx, TA
/* 10. try samr_SetUserInfo2 level 23 to set the password */
status = dcerpc_samr_SetUserInfo2_r(r->samr_handle.in.dcerpc_pipe->binding_handle, mem_ctx, &sui);
+ if (NT_STATUS_IS_OK(status) && !NT_STATUS_IS_OK(sui.out.result)) {
+ status = sui.out.result;
+ }
if (!NT_STATUS_IS_OK(status)) {
r->samr_handle.out.error_string
= talloc_asprintf(mem_ctx,
@@ -530,6 +551,9 @@ static NTSTATUS libnet_SetPassword_samr(struct libnet_context *ctx, TALLOC_CTX *
/* 2. do a samr_Connect to get a policy handle */
status = dcerpc_samr_Connect_r(c.out.dcerpc_pipe->binding_handle, mem_ctx, &sc);
+ if (NT_STATUS_IS_OK(status) && !NT_STATUS_IS_OK(sc.out.result)) {
+ status = sc.out.result;
+ }
if (!NT_STATUS_IS_OK(status)) {
r->samr.out.error_string = talloc_asprintf(mem_ctx,
"samr_Connect failed: %s",
@@ -545,6 +569,9 @@ static NTSTATUS libnet_SetPassword_samr(struct libnet_context *ctx, TALLOC_CTX *
/* 3. do a samr_LookupDomain to get the domain sid */
status = dcerpc_samr_LookupDomain_r(c.out.dcerpc_pipe->binding_handle, mem_ctx, &ld);
+ if (NT_STATUS_IS_OK(status) && !NT_STATUS_IS_OK(ld.out.result)) {
+ status = ld.out.result;
+ }
if (!NT_STATUS_IS_OK(status)) {
r->samr.out.error_string = talloc_asprintf(mem_ctx,
"samr_LookupDomain for [%s] failed: %s",
@@ -561,6 +588,9 @@ static NTSTATUS libnet_SetPassword_samr(struct libnet_context *ctx, TALLOC_CTX *
/* 4. do a samr_OpenDomain to get a domain handle */
status = dcerpc_samr_OpenDomain_r(c.out.dcerpc_pipe->binding_handle, mem_ctx, &od);
+ if (NT_STATUS_IS_OK(status) && !NT_STATUS_IS_OK(od.out.result)) {
+ status = od.out.result;
+ }
if (!NT_STATUS_IS_OK(status)) {
r->samr.out.error_string = talloc_asprintf(mem_ctx,
"samr_OpenDomain for [%s] failed: %s",
@@ -582,6 +612,9 @@ static NTSTATUS libnet_SetPassword_samr(struct libnet_context *ctx, TALLOC_CTX *
/* 5. do a samr_LookupNames to get the users rid */
status = dcerpc_samr_LookupNames_r(c.out.dcerpc_pipe->binding_handle, mem_ctx, &ln);
+ if (NT_STATUS_IS_OK(status) && !NT_STATUS_IS_OK(ln.out.result)) {
+ status = ln.out.result;
+ }
if (!NT_STATUS_IS_OK(status)) {
r->samr.out.error_string = talloc_asprintf(mem_ctx,
"samr_LookupNames for [%s] failed: %s",
@@ -607,6 +640,9 @@ static NTSTATUS libnet_SetPassword_samr(struct libnet_context *ctx, TALLOC_CTX *
/* 6. do a samr_OpenUser to get a user handle */
status = dcerpc_samr_OpenUser_r(c.out.dcerpc_pipe->binding_handle, mem_ctx, &ou);
+ if (NT_STATUS_IS_OK(status) && !NT_STATUS_IS_OK(ou.out.result)) {
+ status = ou.out.result;
+ }
if (!NT_STATUS_IS_OK(status)) {
r->samr.out.error_string = talloc_asprintf(mem_ctx,
"samr_OpenUser for [%s] failed: %s",
diff --git a/source4/libnet/libnet_samsync.c b/source4/libnet/libnet_samsync.c
index eb4c826..774451f 100644
--- a/source4/libnet/libnet_samsync.c
+++ b/source4/libnet/libnet_samsync.c
@@ -216,6 +216,9 @@ NTSTATUS libnet_SamSync_netlogon(struct libnet_context *ctx, TALLOC_CTX *mem_ctx
dbsync.in.credential = &credential;
dbsync_nt_status = dcerpc_netr_DatabaseSync_r(p->binding_handle, loop_ctx, &dbsync);
+ if (NT_STATUS_IS_OK(dbsync_nt_status) && !NT_STATUS_IS_OK(dbsync.out.result)) {
+ dbsync_nt_status = dbsync.out.result;
+ }
if (!NT_STATUS_IS_OK(dbsync_nt_status) &&
!NT_STATUS_EQUAL(dbsync_nt_status, STATUS_MORE_ENTRIES)) {
r->out.error_string = talloc_asprintf(mem_ctx, "DatabaseSync failed - %s", nt_errstr(nt_status));
diff --git a/source4/torture/libnet/domain.c b/source4/torture/libnet/domain.c
index 8c880be..110a2e8 100644
--- a/source4/torture/libnet/domain.c
+++ b/source4/torture/libnet/domain.c
@@ -52,7 +52,6 @@ static bool test_cleanup(struct torture_context *tctx,
struct dcerpc_binding_handle *b, TALLOC_CTX *mem_ctx,
struct policy_handle *domain_handle)
{
- NTSTATUS status;
struct samr_Close r;
struct policy_handle handle;
@@ -61,11 +60,11 @@ static bool test_cleanup(struct torture_context *tctx,
torture_comment(tctx, "closing domain handle\n");
- status = dcerpc_samr_Close_r(b, mem_ctx, &r);
- if (!NT_STATUS_IS_OK(status)) {
- torture_comment(tctx, "Close failed - %s\n", nt_errstr(status));
- return false;
- }
+ torture_assert_ntstatus_ok(tctx,
+ dcerpc_samr_Close_r(b, mem_ctx, &r),
+ "Close failed");
+ torture_assert_ntstatus_ok(tctx, r.out.result,
+ "Close failed");
return true;
}
diff --git a/source4/torture/libnet/libnet_domain.c b/source4/torture/libnet/libnet_domain.c
index bd0e1fa..a8e0842 100644
--- a/source4/torture/libnet/libnet_domain.c
+++ b/source4/torture/libnet/libnet_domain.c
@@ -33,7 +33,6 @@ static bool test_opendomain_samr(struct torture_context *tctx,
struct policy_handle *handle, struct lsa_String *domname,
uint32_t *access_mask, struct dom_sid **sid_p)
{
- NTSTATUS status;
struct policy_handle h, domain_handle;
struct samr_Connect r1;
struct samr_LookupDomain r2;
@@ -48,11 +47,11 @@ static bool test_opendomain_samr(struct torture_context *tctx,
r1.in.access_mask = *access_mask;
r1.out.connect_handle = &h;
- status = dcerpc_samr_Connect_r(b, mem_ctx, &r1);
- if (!NT_STATUS_IS_OK(status)) {
- torture_comment(tctx, "Connect failed - %s\n", nt_errstr(status));
- return false;
- }
+ torture_assert_ntstatus_ok(tctx,
+ dcerpc_samr_Connect_r(b, mem_ctx, &r1),
+ "Connect failed");
+ torture_assert_ntstatus_ok(tctx, r1.out.result,
+ "Connect failed");
r2.in.connect_handle = &h;
r2.in.domain_name = domname;
@@ -60,11 +59,11 @@ static bool test_opendomain_samr(struct torture_context *tctx,
torture_comment(tctx, "domain lookup on %s\n", domname->string);
- status = dcerpc_samr_LookupDomain_r(b, mem_ctx, &r2);
- if (!NT_STATUS_IS_OK(status)) {
- torture_comment(tctx, "LookupDomain failed - %s\n", nt_errstr(status));
- return false;
- }
+ torture_assert_ntstatus_ok(tctx,
+ dcerpc_samr_LookupDomain_r(b, mem_ctx, &r2),
+ "LookupDomain failed");
+ torture_assert_ntstatus_ok(tctx, r2.out.result,
+ "LookupDomain failed");
r3.in.connect_handle = &h;
r3.in.access_mask = *access_mask;
@@ -73,23 +72,23 @@ static bool test_opendomain_samr(struct torture_context *tctx,
torture_comment(tctx, "opening domain\n");
- status = dcerpc_samr_OpenDomain_r(b, mem_ctx, &r3);
- if (!NT_STATUS_IS_OK(status)) {
- torture_comment(tctx, "OpenDomain failed - %s\n", nt_errstr(status));
- return false;
- } else {
- *handle = domain_handle;
- }
+ torture_assert_ntstatus_ok(tctx,
+ dcerpc_samr_OpenDomain_r(b, mem_ctx, &r3),
+ "OpenDomain failed");
+ torture_assert_ntstatus_ok(tctx, r3.out.result,
+ "OpenDomain failed");
+
+ *handle = domain_handle;
return true;
}
-static bool test_opendomain_lsa(struct dcerpc_binding_handle *b, TALLOC_CTX *mem_ctx,
+static bool test_opendomain_lsa(struct torture_context *tctx,
+ struct dcerpc_binding_handle *b, TALLOC_CTX *mem_ctx,
struct policy_handle *handle, struct lsa_String *domname,
uint32_t *access_mask)
{
- NTSTATUS status;
struct lsa_OpenPolicy2 open;
struct lsa_ObjectAttribute attr;
struct lsa_QosInfo qos;
@@ -111,10 +110,11 @@ static bool test_opendomain_lsa(struct dcerpc_binding_handle *b, TALLOC_CTX *mem
open.in.access_mask = *access_mask;
open.out.handle = handle;
- status = dcerpc_lsa_OpenPolicy2_r(b, mem_ctx, &open);
- if (!NT_STATUS_IS_OK(status)) {
- return false;
- }
+ torture_assert_ntstatus_ok(tctx,
+ dcerpc_lsa_OpenPolicy2_r(b, mem_ctx, &open),
+ "OpenPolicy2 failed");
+ torture_assert_ntstatus_ok(tctx, open.out.result,
+ "OpenPolicy2 failed");
return true;
}
@@ -158,11 +158,11 @@ bool torture_domain_open_lsa(struct torture_context *torture)
lsa_close.in.handle = &ctx->lsa.handle;
lsa_close.out.handle = &h;
- status = dcerpc_lsa_Close_r(ctx->lsa.pipe->binding_handle, ctx, &lsa_close);
- if (!NT_STATUS_IS_OK(status)) {
- torture_comment(torture, "failed to close domain on lsa service: %s\n", nt_errstr(status));
- ret = false;
- }
+ torture_assert_ntstatus_ok(torture,
+ dcerpc_lsa_Close_r(ctx->lsa.pipe->binding_handle, ctx, &lsa_close),
+ "failed to close domain on lsa service");
+ torture_assert_ntstatus_ok(torture, lsa_close.out.result,
+ "failed to close domain on lsa service");
done:
talloc_free(ctx);
@@ -208,7 +208,7 @@ bool torture_domain_close_lsa(struct torture_context *torture)
domain_name.string = lp_workgroup(torture->lp_ctx);
- if (!test_opendomain_lsa(p->binding_handle, torture, &h, &domain_name, &access_mask)) {
+ if (!test_opendomain_lsa(torture, p->binding_handle, torture, &h, &domain_name, &access_mask)) {
torture_comment(torture, "failed to open domain on lsa service\n");
ret = false;
goto done;
@@ -283,12 +283,11 @@ bool torture_domain_open_samr(struct torture_context *torture)
--
Samba Shared Repository
More information about the samba-cvs
mailing list