From b6efaeb0c061bc71a93ddba2adc533356e0e125c Mon Sep 17 00:00:00 2001 From: Victor Julien Date: Tue, 15 Oct 2013 11:32:37 +0200 Subject: [PATCH] storage: fix freeing storage Fix freeing storage. Also add workaround for unittests that don't (fully) setup storage. Bug #991. --- src/util-storage.c | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) 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; -- 2.47.2