From 90c37a7c2cdac3de0b75f889d63f5fe1b87a48e3 Mon Sep 17 00:00:00 2001 From: Volker Lendecke Date: Sat, 3 May 2008 02:41:10 +0200 Subject: [PATCH] Fix a valgrind bug in the new [ug]id2sid cache When we're given a SID, it is not always padded with zeros. Only look at the initialized parts in the SID. --- source/passdb/lookup_sid.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/source/passdb/lookup_sid.c b/source/passdb/lookup_sid.c index 4341bc02ccf..debd67b136e 100644 --- a/source/passdb/lookup_sid.c +++ b/source/passdb/lookup_sid.c @@ -1027,7 +1027,7 @@ static bool fetch_uid_from_cache( uid_t *puid, const DOM_SID *psid ) DATA_BLOB cache_value; if (!memcache_lookup(NULL, SID_UID_CACHE, - data_blob_const(psid, sizeof(*psid)), + data_blob_const(psid, ndr_size_dom_sid(psid, 0)), &cache_value)) { return false; } @@ -1045,11 +1045,11 @@ static bool fetch_uid_from_cache( uid_t *puid, const DOM_SID *psid ) void store_uid_sid_cache(const DOM_SID *psid, uid_t uid) { memcache_add(NULL, SID_UID_CACHE, - data_blob_const(psid, sizeof(*psid)), + data_blob_const(psid, ndr_size_dom_sid(psid, 0)), data_blob_const(&uid, sizeof(uid))); memcache_add(NULL, UID_SID_CACHE, data_blob_const(&uid, sizeof(uid)), - data_blob_const(psid, sizeof(*psid))); + data_blob_const(psid, ndr_size_dom_sid(psid, 0))); } /***************************************************************** @@ -1081,7 +1081,7 @@ static bool fetch_gid_from_cache(gid_t *pgid, const DOM_SID *psid) DATA_BLOB cache_value; if (!memcache_lookup(NULL, SID_UID_CACHE, - data_blob_const(psid, sizeof(*psid)), + data_blob_const(psid, ndr_size_dom_sid(psid, 0)), &cache_value)) { return false; } @@ -1099,11 +1099,11 @@ static bool fetch_gid_from_cache(gid_t *pgid, const DOM_SID *psid) void store_gid_sid_cache(const DOM_SID *psid, gid_t gid) { memcache_add(NULL, SID_GID_CACHE, - data_blob_const(psid, sizeof(*psid)), + data_blob_const(psid, ndr_size_dom_sid(psid, 0)), data_blob_const(&gid, sizeof(gid))); memcache_add(NULL, GID_SID_CACHE, data_blob_const(&gid, sizeof(gid)), - data_blob_const(psid, sizeof(*psid))); + data_blob_const(psid, ndr_size_dom_sid(psid, 0))); } /***************************************************************** -- 2.11.4.GIT