]> granicus.if.org Git - neomutt/commitdiff
notify: fix leak on exit
authorRichard Russon <rich@flatcap.org>
Tue, 2 Jul 2019 12:43:02 +0000 (13:43 +0100)
committerRichard Russon <rich@flatcap.org>
Tue, 2 Jul 2019 12:43:06 +0000 (13:43 +0100)
main.c
mutt/notify.c

diff --git a/main.c b/main.c
index f39dc42fa8163459450467dc1083d38be851f910..e599cd21373098aaf4946c25f4ea9838ffe8a504 100644 (file)
--- a/main.c
+++ b/main.c
@@ -1237,7 +1237,6 @@ int main(int argc, char *argv[], char *envp[])
 #endif
     log_queue_empty();
     mutt_log_stop();
-    cs_free(&Config);
     // TEST43: neomutt (no change to mailbox)
     // TEST44: neomutt (change mailbox)
   }
index 7667f7c15d5e7c02aab1d7b50a04e21844e58f27..164f5f6166a563d96228a19cd4b8ce568be00cf5 100644 (file)
@@ -194,14 +194,16 @@ bool notify_observer_remove(struct Notify *notify, observer_t callback)
     return false;
 
   struct ObserverNode *np = NULL;
-  STAILQ_FOREACH(np, &notify->observers, entries)
+  struct ObserverNode *tmp = NULL;
+  STAILQ_FOREACH_SAFE(np, &notify->observers, entries, tmp)
   {
     if (!callback || (np->observer->callback == callback))
     {
       STAILQ_REMOVE(&notify->observers, np, ObserverNode, entries);
       FREE(&np->observer);
       FREE(&np);
-      return true;
+      if (callback)
+        return true;
     }
   }