From 72d58c58d57a37de615d0717094a4e9e49c0aac0 Mon Sep 17 00:00:00 2001 From: Georg Hopp Date: Sat, 28 Sep 2013 21:46:36 +0100 Subject: [PATCH] As gdbm_fetch changes the key I copy it before I try to get data with it. --- src/storage/get.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/src/storage/get.c b/src/storage/get.c index 0053a2e..b254462 100644 --- a/src/storage/get.c +++ b/src/storage/get.c @@ -36,10 +36,13 @@ storageGet( char * _key, size_t nkey, char ** data, size_t * ndata) { - datum key = {_key, nkey}; - datum value; + char * key = memMalloc(nkey); + datum gdbm_key = {key, nkey}; + datum value; - value = gdbm_fetch(this->gdbm, key); + memcpy(key, _key, nkey); + value = gdbm_fetch(this->gdbm, gdbm_key); + MEM_FREE(key); if (NULL != value.dptr) { *ndata = value.dsize;