]> git.sur5r.net Git - bacula/bacula/commitdiff
ebl Fix segfault when freeing an empty htable
authorEric Bollengier <eric@eb.homelinux.org>
Wed, 20 Feb 2008 18:41:59 +0000 (18:41 +0000)
committerEric Bollengier <eric@eb.homelinux.org>
Wed, 20 Feb 2008 18:41:59 +0000 (18:41 +0000)
git-svn-id: https://bacula.svn.sourceforge.net/svnroot/bacula/trunk@6452 91ce42f0-d328-0410-95d8-f526ca767f89

bacula/src/lib/htable.c

index d489e3487c33065689cc2b230c565da8637fd632..88fd2343edc6752ece3251559352e87a717e4b49 100644 (file)
@@ -193,7 +193,6 @@ bool htable::insert(char *key, void *item)
    if (lookup(key)) {
       return false;                   /* already exists */
    }
-   sm_check(__FILE__, __LINE__, false);
    ASSERT(index < buckets);
    Dmsg2(100, "Insert: hash=0x%x index=%d\n", (unsigned)hash, index);
    hp = (hlink *)(((char *)item)+loffset);
@@ -210,7 +209,6 @@ bool htable::insert(char *key, void *item)
       Dmsg2(100, "num_items=%d max_items=%d\n", num_items, max_items);
       grow_table();
    }
-   sm_check(__FILE__, __LINE__, false);
    Dmsg3(100, "Leave insert index=%d num_items=%d key=%s\n", index, num_items, key);
    return true;
 }
@@ -275,11 +273,12 @@ void htable::destroy()
 {
    void *ni;
    void *li = first();
-   do {
+
+   while (li) {
       ni = next();
       free(li);
-      li = ni;
-   } while (ni);
+      li=ni;
+   }
 
    free(table);
    table = NULL;