From: Victor Julien Date: Tue, 15 Oct 2013 09:32:37 +0000 (+0200) Subject: storage: fix freeing storage X-Git-Tag: suricata-2.0beta2~218 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=refs%2Fpull%2F592%2Fhead;p=thirdparty%2Fsuricata.git storage: fix freeing storage Fix freeing storage. Also add workaround for unittests that don't (fully) setup storage. Bug #991. --- diff --git a/src/util-storage.c b/src/util-storage.c index e048163dc2..6bf3603bf0 100644 --- a/src/util-storage.c +++ b/src/util-storage.c @@ -281,6 +281,10 @@ void StorageFreeById(Storage *storage, StorageEnum type, int id) { #ifdef DEBUG BUG_ON(!storage_registraton_closed); +#endif +#ifdef UNITTESTS + if (storage_map == NULL) + return; #endif SCLogDebug("storage %p id %d", storage, id); @@ -297,12 +301,15 @@ void StorageFreeById(Storage *storage, StorageEnum type, int id) void StorageFreeAll(Storage *storage, StorageEnum type) { - if (*storage == NULL) + if (storage == NULL) return; - #ifdef DEBUG BUG_ON(!storage_registraton_closed); #endif +#ifdef UNITTESTS + if (storage_map == NULL) + return; +#endif Storage *store = storage; int i; @@ -323,6 +330,10 @@ void StorageFree(Storage **storage, StorageEnum type) #ifdef DEBUG BUG_ON(!storage_registraton_closed); #endif +#ifdef UNITTESTS + if (storage_map == NULL) + return; +#endif Storage *store = *storage; int i;