]> git.ipfire.org Git - thirdparty/samba.git/commitdiff
Revert "winbind: Remove validate_ug"
authorVolker Lendecke <vl@samba.org>
Thu, 2 Mar 2017 13:54:09 +0000 (14:54 +0100)
committerRalph Boehme <slow@samba.org>
Mon, 6 Mar 2017 14:09:17 +0000 (15:09 +0100)
This reverts commit 3f58a8cabab75a594cff9088d5dd8ea439b36178.

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

Signed-off-by: Volker Lendecke <vl@samba.org>
Reviewed-by: Stefan Metzmacher <metze@samba.org>
Reviewed-by: Ralph Boehme <slow@samba.org>
source3/winbindd/winbindd_cache.c

index 4431cb52b64ae3297474f898269dd4caf0a4337a..a343ad1df68925e26add56df930664de26f10480 100644 (file)
@@ -2917,6 +2917,11 @@ void wcache_invalidate_samlogon(struct winbindd_domain *domain,
        DEBUG(10, ("wcache_invalidate_samlogon: clearing %s\n", key_str));
        tdb_delete(cache->tdb, string_tdb_data(key_str));
 
+       /* Clear UG/SID cache entry */
+       fstr_sprintf(key_str, "UG/%s", sid_to_fstring(sid_string, sid));
+       DEBUG(10, ("wcache_invalidate_samlogon: clearing %s\n", key_str));
+       tdb_delete(cache->tdb, string_tdb_data(key_str));
+
        /* Samba/winbindd never needs this. */
        netsamlogon_clear_cached_user(sid);
 }
@@ -3679,6 +3684,32 @@ static int validate_gl(TALLOC_CTX *mem_ctx, const char *keystr, TDB_DATA dbuf,
        return 0;
 }
 
+static int validate_ug(TALLOC_CTX *mem_ctx, const char *keystr, TDB_DATA dbuf,
+                      struct tdb_validation_status *state)
+{
+       struct cache_entry *centry = create_centry_validate(keystr, dbuf, state);
+       int32_t num_groups, i;
+
+       if (!centry) {
+               return 1;
+       }
+
+       num_groups = centry_uint32(centry);
+
+       for (i=0; i< num_groups; i++) {
+               struct dom_sid sid;
+               centry_sid(centry, &sid);
+       }
+
+       centry_free(centry);
+
+       if (!(state->success)) {
+               return 1;
+       }
+       DEBUG(10,("validate_ug: %s ok\n", keystr));
+       return 0;
+}
+
 static int validate_ua(TALLOC_CTX *mem_ctx, const char *keystr, TDB_DATA dbuf,
                       struct tdb_validation_status *state)
 {
@@ -3881,6 +3912,7 @@ struct key_val_struct {
        {"CRED/", validate_cred},
        {"UL/", validate_ul},
        {"GL/", validate_gl},
+       {"UG/", validate_ug},
        {"UA", validate_ua},
        {"GM/", validate_gm},
        {"DR/", validate_dr},