lib: Make idmap_cache return negative mappings
authorVolker Lendecke <vl@samba.org>
Mon, 25 Feb 2019 13:38:50 +0000 (14:38 +0100)
committerKarolin Seeger <kseeger@samba.org>
Tue, 12 Mar 2019 11:25:42 +0000 (11:25 +0000)
Without this we'd query non-existent mappings over and over
again.

Signed-off-by: Volker Lendecke <vl@samba.org>
Reviewed-by: Christof Schmitt <cs@samba.org>
Bug: https://bugzilla.samba.org/show_bug.cgi?id=13813
(cherry picked from commit d9303e8eb90d48f09f2e2e8bdf01f4a7c3c21d11)

source3/lib/idmap_cache.c

index 1e8a1ebc607be5a954b56f6d170202c677d3c0e0..0ec23df6a05726652bd8ef69ade1cedae6611a67 100644 (file)
@@ -213,7 +213,12 @@ static void idmap_cache_xid2sid_parser(time_t timeout, DATA_BLOB blob,
 
        value = (char *)blob.data;
 
-       if (value[0] != '-') {
+       if ((value[0] == '-') && (value[1] == '\0')) {
+               /*
+                * Return NULL SID, see comment to uid2sid
+                */
+               state->ret = true;
+       } else {
                state->ret = string_to_sid(state->sid, value);
        }
        if (state->ret) {