]> git.ipfire.org Git - thirdparty/suricata.git/commitdiff
storage: fix freeing storage 592/head
authorVictor Julien <victor@inliniac.net>
Tue, 15 Oct 2013 09:32:37 +0000 (11:32 +0200)
committerVictor Julien <victor@inliniac.net>
Tue, 15 Oct 2013 09:33:39 +0000 (11:33 +0200)
Fix freeing storage. Also add workaround for unittests that don't
(fully) setup storage.

Bug #991.

src/util-storage.c

index e048163dc2b648b94040e506695145880cb917dd..6bf3603bf06765b993a5f795abfc0ace8ad333c1 100644 (file)
@@ -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;