libev migration: check pointer before free'ing it.
[citadel.git] / 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)