summaryrefslogtreecommitdiffstats
path: root/source/lib/gencache.c
diff options
context:
space:
mode:
authorAndrew Bartlett <abartlet@samba.org>2003-03-22 23:32:50 +0000
committerAndrew Bartlett <abartlet@samba.org>2003-03-22 23:32:50 +0000
commit8315b9c3119dde62aeb72ad5e20f63aee89abd0b (patch)
tree6da60562b4010f4fddcc5d88a309f0f8d19e0240 /source/lib/gencache.c
parent70634d248e74395c05d9980b07d53a20327a30a8 (diff)
downloadsamba-8315b9c3119dde62aeb72ad5e20f63aee89abd0b.tar.gz
samba-8315b9c3119dde62aeb72ad5e20f63aee89abd0b.tar.xz
samba-8315b9c3119dde62aeb72ad5e20f63aee89abd0b.zip
(merge from HEAD) Valgrind found some memory leaks!
Diffstat (limited to 'source/lib/gencache.c')
-rw-r--r--source/lib/gencache.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/source/lib/gencache.c b/source/lib/gencache.c
index 6a66ce95b99..baec0e3b376 100644
--- a/source/lib/gencache.c
+++ b/source/lib/gencache.c
@@ -114,6 +114,9 @@ BOOL gencache_set(const char *keystr, const char *value, time_t timeout)
if (!gencache_init()) return False;
asprintf(&valstr, CACHE_DATA_FMT, (int)timeout, value);
+ if (!valstr)
+ return False;
+
keybuf.dptr = strdup(keystr);
keybuf.dsize = strlen(keystr)+1;
databuf.dptr = strdup(valstr);
@@ -241,6 +244,7 @@ BOOL gencache_get(const char *keystr, char **valstr, time_t *timeout)
keybuf.dptr = strdup(keystr);
keybuf.dsize = strlen(keystr)+1;
databuf = tdb_fetch(cache, keybuf);
+ SAFE_FREE(keybuf.dptr);
if (databuf.dptr && databuf.dsize > TIMEOUT_LEN) {
char* entry_buf = strndup(databuf.dptr, databuf.dsize);