svn commit: samba r18312 - in branches/SAMBA_3_0/source: lib libsmb

vlendec at samba.org vlendec at samba.org
Sat Sep 9 21:40:47 GMT 2006


Author: vlendec
Date: 2006-09-09 21:40:47 +0000 (Sat, 09 Sep 2006)
New Revision: 18312

WebSVN: http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=rev&root=samba&rev=18312

Log:
Change gencache_get slightly: Delete expired keys, and only strdup the value
if a valid entry was found. The newer calls got the latter one wrong, change
the older calls.

Volker

Modified:
   branches/SAMBA_3_0/source/lib/gencache.c
   branches/SAMBA_3_0/source/libsmb/namecache.c
   branches/SAMBA_3_0/source/libsmb/trustdom_cache.c


Changeset:
Modified: branches/SAMBA_3_0/source/lib/gencache.c
===================================================================
--- branches/SAMBA_3_0/source/lib/gencache.c	2006-09-09 21:31:56 UTC (rev 18311)
+++ branches/SAMBA_3_0/source/lib/gencache.c	2006-09-09 21:40:47 UTC (rev 18312)
@@ -212,6 +212,15 @@
 		   "timeout = %s", t > time(NULL) ? "valid" :
 		   "expired", keystr, endptr+1, ctime(&t)));
 
+	if (t <= time(NULL)) {
+
+		/* We're expired, delete the entry */
+		tdb_delete(cache, keybuf);
+
+		SAFE_FREE(databuf.dptr);
+		return False;
+	}
+
 	if (valstr) {
 		*valstr = SMB_STRDUP(endptr+1);
 		if (*valstr == NULL) {
@@ -227,7 +236,7 @@
 		*timeout = t;
 	}
 
-	return t > time(NULL);
+	return True;
 } 
 
 

Modified: branches/SAMBA_3_0/source/libsmb/namecache.c
===================================================================
--- branches/SAMBA_3_0/source/libsmb/namecache.c	2006-09-09 21:31:56 UTC (rev 18311)
+++ branches/SAMBA_3_0/source/libsmb/namecache.c	2006-09-09 21:40:47 UTC (rev 18312)
@@ -201,9 +201,7 @@
 
 	if (!gencache_get(key, &value, &timeout)) {
 		DEBUG(5, ("no entry for %s#%02X found.\n", name, name_type));
-		gencache_del(key);
 		SAFE_FREE(key);
-		SAFE_FREE(value);		 
 		return False;
 	} else {
 		DEBUG(5, ("name %s#%02X found.\n", name, name_type));
@@ -314,9 +312,7 @@
 
 	if (!gencache_get(key, &value, &timeout)) {
 		DEBUG(5, ("namecache_status_fetch: no entry for %s found.\n", key));
-		gencache_del(key);
 		SAFE_FREE(key);
-		SAFE_FREE(value);
 		return False;
 	} else {
 		DEBUG(5, ("namecache_status_fetch: key %s -> %s\n", key, value ));

Modified: branches/SAMBA_3_0/source/libsmb/trustdom_cache.c
===================================================================
--- branches/SAMBA_3_0/source/libsmb/trustdom_cache.c	2006-09-09 21:31:56 UTC (rev 18311)
+++ branches/SAMBA_3_0/source/libsmb/trustdom_cache.c	2006-09-09 21:40:47 UTC (rev 18312)
@@ -183,7 +183,6 @@
 	if (!gencache_get(key, &value, &timeout)) {
 		DEBUG(5, ("no entry for trusted domain %s found.\n", name));
 		SAFE_FREE(key);
-		SAFE_FREE(value);
 		return False;
 	} else {
 		SAFE_FREE(key);



More information about the samba-cvs mailing list