storage: fix freeing storage

Fix freeing storage. Also add workaround for unittests that don't
(fully) setup storage.

Bug #991.
pull/592/head
Victor Julien 12 years ago
parent 37669bfdd2
commit b6efaeb0c0

@ -281,6 +281,10 @@ void StorageFreeById(Storage *storage, StorageEnum type, int id)
{ {
#ifdef DEBUG #ifdef DEBUG
BUG_ON(!storage_registraton_closed); BUG_ON(!storage_registraton_closed);
#endif
#ifdef UNITTESTS
if (storage_map == NULL)
return;
#endif #endif
SCLogDebug("storage %p id %d", storage, id); 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) void StorageFreeAll(Storage *storage, StorageEnum type)
{ {
if (*storage == NULL) if (storage == NULL)
return; return;
#ifdef DEBUG #ifdef DEBUG
BUG_ON(!storage_registraton_closed); BUG_ON(!storage_registraton_closed);
#endif #endif
#ifdef UNITTESTS
if (storage_map == NULL)
return;
#endif
Storage *store = storage; Storage *store = storage;
int i; int i;
@ -323,6 +330,10 @@ void StorageFree(Storage **storage, StorageEnum type)
#ifdef DEBUG #ifdef DEBUG
BUG_ON(!storage_registraton_closed); BUG_ON(!storage_registraton_closed);
#endif #endif
#ifdef UNITTESTS
if (storage_map == NULL)
return;
#endif
Storage *store = *storage; Storage *store = *storage;
int i; int i;

Loading…
Cancel
Save