libev migration: check pointer before free'ing it.
authorWilfried Goesgens <dothebart@citadel.org>
Mon, 24 Jan 2011 23:22:49 +0000 (00:22 +0100)
committerWilfried Goesgens <dothebart@citadel.org>
Mon, 24 Jan 2011 23:22:49 +0000 (00:22 +0100)
citadel/modules/smtp/serv_smtpqueue.c

index 26c7e555dd47a7f141aae25da3fffb1ab236f4c4..b4ab587407bf325871d50ed0375229d79b0eaf16 100644 (file)
@@ -140,9 +140,13 @@ void RemoveQItem(OneQueItem *MyQItem)
 
 void FreeURL(ParsedURL** Url)
 {
-       FreeStrBuf(&(*Url)->URL);
-       free(*Url);
-       *Url = NULL;
+       if (*Url != NULL) {
+               FreeStrBuf(&(*Url)->URL);
+               if ((*Url)->Next != NULL)
+                       FreeURL(&(*Url)->Next);
+               free(*Url);
+               *Url = NULL;
+       }
 }
 
 void FreeMailQEntry(void *qv)