summaryrefslogtreecommitdiff
path: root/source3
diff options
context:
space:
mode:
authorVolker Lendecke <vl@samba.org>2009-03-24 11:07:16 +0100
committerVolker Lendecke <vl@samba.org>2009-03-24 11:59:42 +0100
commitf91565544f96be60cb6464d739008f8241e55d5c (patch)
treee6640570221e808790c7a15df34a4569544bf571 /source3
parentde2a7c8e4caa4898a3ff5cfd85d21cddec8188f2 (diff)
downloadsamba-f91565544f96be60cb6464d739008f8241e55d5c.tar.gz
samba-f91565544f96be60cb6464d739008f8241e55d5c.tar.bz2
samba-f91565544f96be60cb6464d739008f8241e55d5c.zip
Fix bug 6097
A client sent a SID with authority 0 and 0 sub-authorities. W2k3 replies with NT_STATUS_INVALID_SID, even if other SIDs in the list are valid. Thanks to Pavel <wylda@volny.cz> for the bug report!
Diffstat (limited to 'source3')
-rw-r--r--source3/passdb/lookup_sid.c2
-rw-r--r--source3/rpc_server/srv_lsa_nt.c4
2 files changed, 5 insertions, 1 deletions
diff --git a/source3/passdb/lookup_sid.c b/source3/passdb/lookup_sid.c
index 9c20042a62..a5c2d50366 100644
--- a/source3/passdb/lookup_sid.c
+++ b/source3/passdb/lookup_sid.c
@@ -804,7 +804,7 @@ NTSTATUS lookup_sids(TALLOC_CTX *mem_ctx, int num_sids,
} else {
/* This is a normal SID with rid component */
if (!sid_split_rid(&sid, &rid)) {
- result = NT_STATUS_INVALID_PARAMETER;
+ result = NT_STATUS_INVALID_SID;
goto fail;
}
}
diff --git a/source3/rpc_server/srv_lsa_nt.c b/source3/rpc_server/srv_lsa_nt.c
index ed54c3a86e..5fdcaf2d4a 100644
--- a/source3/rpc_server/srv_lsa_nt.c
+++ b/source3/rpc_server/srv_lsa_nt.c
@@ -827,6 +827,10 @@ NTSTATUS _lsa_LookupSids(pipes_struct *p,
&names,
&mapped_count);
+ if (NT_STATUS_IS_ERR(status)) {
+ return status;
+ }
+
/* Convert from lsa_TranslatedName2 to lsa_TranslatedName */
names_out = TALLOC_ARRAY(p->mem_ctx, struct lsa_TranslatedName,
num_sids);