idmap: In _wbint_Sids2UnixIDs, pass back what we have
authorVolker Lendecke <vl@samba.org>
Tue, 18 Dec 2018 14:53:48 +0000 (15:53 +0100)
committerVolker Lendecke <vl@samba.org>
Tue, 8 Jan 2019 12:15:35 +0000 (13:15 +0100)
SOME_UNMAPPED does not mean that nothing worthwhile is in here. We
need to pass what we have.

Signed-off-by: Volker Lendecke <vl@samba.org>
Reviewed-by: Stefan Metzmacher <metze@samba.org>
Autobuild-User(master): Volker Lendecke <vl@samba.org>
Autobuild-Date(master): Tue Jan  8 13:15:35 CET 2019 on sn-devel-144

selftest/knownfail.d/samba3.wbinfo_sids_to_xids [deleted file]
source3/winbindd/winbindd_dual_srv.c

diff --git a/selftest/knownfail.d/samba3.wbinfo_sids_to_xids b/selftest/knownfail.d/samba3.wbinfo_sids_to_xids
deleted file mode 100644 (file)
index 26c61e3..0000000
+++ /dev/null
@@ -1 +0,0 @@
-^samba3.wbinfo_sids_to_xids.wbinfo.some.mapped
index 62224bf313ee4fb0eadf3254d14cfdf6ea2f5b46..ab14f5d51a048a88311b122497990138525eb754 100644 (file)
@@ -204,6 +204,15 @@ NTSTATUS _wbint_Sids2UnixIDs(struct pipes_struct *p,
 
        status = dom->methods->sids_to_unixids(dom, id_map_ptrs);
 
+       if (NT_STATUS_EQUAL(status, STATUS_SOME_UNMAPPED)) {
+               /*
+                * This is okay. We need to transfer the mapped ones
+                * up to our caller. The individual mappings carry the
+                * information whether they are mapped or not.
+                */
+               status = NT_STATUS_OK;
+       }
+
        if (!NT_STATUS_IS_OK(status)) {
                DEBUG(10, ("sids_to_unixids returned %s\n",
                           nt_errstr(status)));