Fix bad use when freeing linked list. Todd Stecher (Original author) please check !
authorJeremy Allison <jra@samba.org>
Thu, 11 Feb 2010 00:23:33 +0000 (16:23 -0800)
committerJeremy Allison <jra@samba.org>
Thu, 11 Feb 2010 00:23:33 +0000 (16:23 -0800)
Jeremy.

source3/modules/perfcount_test.c

index f9ea817127b7b25fc03441687d7714b7bba5441f..67be4aa9c610b599bb6e65bbf890a9b0b72effc8 100644 (file)
@@ -176,12 +176,14 @@ static void perfcount_test_dump_counters(void)
 
        DEBUG(0,("#####  Dumping Performance Counters #####\n"));
 
-       for (i=0; i < 256; i++) {
-              for (head = g_list[i]; head != NULL; head = head->next) {
-                      perfcount_test_dump_counter(head, 0);
-                      SAFE_FREE(DLIST_PREV(head));
-              }
-              SAFE_FREE(head);
+       for (i=0; i < MAX_OP; i++) {
+               struct perfcount_test_counter *next;
+               for (head = g_list[i]; head != NULL; head = next) {
+                       next = head->next;
+                       perfcount_test_dump_counter(head, 0);
+                       SAFE_FREE(head);
+               }
+               g_list[i] = NULL;
        }
 }