More and better leak fixes after commit 9729bf0e0.
[claws.git] / src / news.c
index d510da93b1425a0d80cbdf21893c0e667d783f07..c062ac3dfd8e04e51291461299ba15200c67afdc 100644 (file)
@@ -920,7 +920,7 @@ static MsgInfo *news_parse_xover(struct newsnntp_xover_resp_item *item)
                                 msginfo->inreplyto = g_strdup(p);
                 }
                g_free(tmp);
-        
+       } 
 
        return msginfo;
 }
@@ -929,7 +929,7 @@ gint news_cancel_article(Folder * folder, MsgInfo * msginfo)
 {
        gchar * tmp;
        FILE * tmpfp;
-       gchar buf[BUFFSIZE];
+       gchar date[RFC822_DATE_BUFFSIZE];
 
        tmp = g_strdup_printf("%s%ccancel%p", get_tmp_dir(),
                              G_DIR_SEPARATOR, msginfo);
@@ -946,9 +946,9 @@ gint news_cancel_article(Folder * folder, MsgInfo * msginfo)
        }
        
        if (prefs_common.hide_timezone)
-               get_rfc822_date_hide_tz(buf, sizeof(buf));
+               get_rfc822_date_hide_tz(date, sizeof(date));
        else
-               get_rfc822_date(buf, sizeof(buf));
+               get_rfc822_date(date, sizeof(date));
        if (fprintf(tmpfp, "From: %s\r\n"
                       "Newsgroups: %s\r\n"
                       "Subject: cmsg cancel <%s>\r\n"
@@ -964,7 +964,7 @@ gint news_cancel_article(Folder * folder, MsgInfo * msginfo)
                       msginfo->msgid,
                       msginfo->from,
                       msginfo->from,
-                      buf) < 0) {
+                      date) < 0) {
                FILE_OP_ERROR(tmp, "fprintf");
                fclose(tmpfp);
                claws_unlink(tmp);
@@ -1136,6 +1136,8 @@ static void news_get_extra_fields(NewsSession *session, FolderItem *item, GSList
                        REMOTE_FOLDER(item->folder)->session = NULL;
                }
                news_folder_unlock(NEWS_FOLDER(item->folder));
+               if (hdrlist != NULL)
+                       newsnntp_xhdr_free(hdrlist);
                return;
        }
 
@@ -1149,6 +1151,7 @@ static void news_get_extra_fields(NewsSession *session, FolderItem *item, GSList
                }
        }
        newsnntp_xhdr_free(hdrlist);
+       hdrlist = NULL;
        
 /* To */
        ok = nntp_threaded_xhdr(item->folder, "to", first, last, &hdrlist);
@@ -1160,6 +1163,8 @@ static void news_get_extra_fields(NewsSession *session, FolderItem *item, GSList
                        REMOTE_FOLDER(item->folder)->session = NULL;
                }
                news_folder_unlock(NEWS_FOLDER(item->folder));
+               if (hdrlist != NULL)
+                       newsnntp_xhdr_free(hdrlist);
                return;
        }
 
@@ -1173,6 +1178,7 @@ static void news_get_extra_fields(NewsSession *session, FolderItem *item, GSList
                }
        }
        newsnntp_xhdr_free(hdrlist);
+       hdrlist = NULL;
        
 /* Cc */
        ok = nntp_threaded_xhdr(item->folder, "cc", first, last, &hdrlist);
@@ -1184,6 +1190,8 @@ static void news_get_extra_fields(NewsSession *session, FolderItem *item, GSList
                        REMOTE_FOLDER(item->folder)->session = NULL;
                }
                news_folder_unlock(NEWS_FOLDER(item->folder));
+               if (hdrlist != NULL)
+                       newsnntp_xhdr_free(hdrlist);
                return;
        }
 
@@ -1197,7 +1205,7 @@ static void news_get_extra_fields(NewsSession *session, FolderItem *item, GSList
                }
        }
        newsnntp_xhdr_free(hdrlist);
-       
+       hdrlist = NULL;
 
        g_hash_table_destroy(hash_table);
        news_folder_unlock(NEWS_FOLDER(item->folder));
@@ -1235,6 +1243,8 @@ static GSList *news_get_msginfos_for_range(NewsSession *session, FolderItem *ite
                        REMOTE_FOLDER(item->folder)->session = NULL;
                }
                news_folder_unlock(NEWS_FOLDER(item->folder));
+               if (msglist != NULL)
+                       newsnntp_xover_resp_list_free(msglist);
                return NULL;
        }