Fix a memory leak in Pine address book support
authorAndrej Kacian <ticho@claws-mail.org>
Wed, 13 Mar 2019 19:19:59 +0000 (20:19 +0100)
committerAndrej Kacian <ticho@claws-mail.org>
Wed, 13 Mar 2019 19:19:59 +0000 (20:19 +0100)
Also removed mgu_clear_slist(), since it is not
used anywhere anymore.

src/common/mgutils.c
src/common/mgutils.h
src/pine.c

index cbb5761..e15207b 100644 (file)
@@ -137,18 +137,6 @@ gchar *mgu_replace_string( gchar *str, const gchar *value ) {
 * Clear a linked list by setting node data pointers to NULL. Note that
 * items are not freed.
 */
-void mgu_clear_slist( GSList *list ) {
-       GSList *node = list;
-       while( node ) {
-               node->data = NULL;
-               node = g_slist_next( node );
-       }
-}
-
-/*
-* Clear a linked list by setting node data pointers to NULL. Note that
-* items are not freed.
-*/
 void mgu_clear_list( GList *list ) {
        GList *node = list;
        while( node ) {
index 574c980..1555536 100644 (file)
@@ -47,7 +47,6 @@ void mgu_free_list            ( GSList *list );
 void mgu_free_dlist            ( GList *list );
 gchar *mgu_list_coalesce       ( GSList *list );
 gchar *mgu_replace_string      ( gchar *str, const gchar *value );
-void mgu_clear_slist           ( GSList *list );
 void mgu_clear_list            ( GList *list );
 gchar *mgu_email_check_empty   ( gchar *address );
 GList *mgu_parse_string                ( gchar *line, const gint maxTokens,
index 20944d0..19e2525 100644 (file)
@@ -195,10 +195,8 @@ static void pine_free_rec( Pine_ParsedRec *rec ) {
                g_free( rec->address );
                g_free( rec->fcc );
                g_free( rec->comments );
-               mgu_clear_slist( rec->listName );
-               mgu_clear_slist( rec->listAddr );
-               g_slist_free( rec->listName );
-               g_slist_free( rec->listAddr );
+               g_slist_free_full( rec->listName, g_free );
+               g_slist_free_full( rec->listAddr, g_free );
                rec->nickName = NULL;
                rec->name = NULL;
                rec->address = NULL;