winbind: Only use unixid2sid mapping when module reports ID_MAPPED
authorChristof Schmitt <cs@samba.org>
Fri, 5 Mar 2021 22:48:29 +0000 (15:48 -0700)
committerKarolin Seeger <kseeger@samba.org>
Wed, 31 Mar 2021 10:13:54 +0000 (10:13 +0000)
Only consider a mapping to be valid when the idmap module reports
ID_MAPPED. Otherwise return the null SID.

BUG: https://bugzilla.samba.org/show_bug.cgi?id=14663

Signed-off-by: Christof Schmitt <cs@samba.org>
Reviewed-by: Volker Lendecke <vl@samba.org>
(cherry picked from commit db2afa57e4aa926b478db1be4d693edbdf4d2a23)

source3/winbindd/winbindd_dual_srv.c

index ffd7bb957b25f7418dea5d548feb637f7d7d4ba8..8a0301bf2d623fdb6c2da6030a4d9c435b1b43c0 100644 (file)
@@ -283,8 +283,10 @@ NTSTATUS _wbint_UnixIDs2Sids(struct pipes_struct *p,
        }
 
        for (i=0; i<r->in.num_ids; i++) {
-               r->out.xids[i] = maps[i]->xid;
-               sid_copy(&r->out.sids[i], maps[i]->sid);
+               if (maps[i]->status == ID_MAPPED) {
+                       r->out.xids[i] = maps[i]->xid;
+                       sid_copy(&r->out.sids[i], maps[i]->sid);
+               }
        }
 
        TALLOC_FREE(maps);