s3:winbindd:cache: fix offline logons with cached credentials (bug #9321)
authorMichael Adam <obnox@samba.org>
Thu, 1 Nov 2012 13:41:56 +0000 (14:41 +0100)
committerMichael Adam <obnox@samba.org>
Thu, 1 Nov 2012 15:11:05 +0000 (16:11 +0100)
The removal of consumption of the time field from the centry
as "removal of unused variable" in 21528da9cd12a4f5c3792a482a5d18fe946a6f7a
had the side effect of changing the offset for reading the following
nt password hash, so the read password hash was wrong.

This patch re-installs the consumption of the time,
thereby fixing the bug without changing the disk format of the cache.

Signed-off-by: Michael Adam <obnox@samba.org>
Reviewed-by: Stefan Metzmacher <metze@samba.org>
source3/winbindd/winbindd_cache.c

index 2c9dd4a9b3e19472e9cfd0ceaff1d1b669cb037c..c79d3b6dc116e02290d6229dba8e896fa6b8a600 100644 (file)
@@ -1329,6 +1329,13 @@ NTSTATUS wcache_get_creds(struct winbindd_domain *domain,
                return NT_STATUS_OBJECT_NAME_NOT_FOUND;
        }
 
+       /*
+        * We don't use the time element at this moment,
+        * but we have to consume it, so that we don't
+        * neet to change the disk format of the cache.
+        */
+       (void)centry_time(centry);
+
        /* In the salted case this isn't actually the nt_hash itself,
           but the MD5 of the salt + nt_hash. Let the caller
           sort this out. It can tell as we only return the cached_salt