]> git.ipfire.org Git - thirdparty/squid.git/commitdiff
Fix memory leaks and segmentation faults in librfcnb parser
authorFrancesco Chemolli <kinkie@squid-cache.org>
Mon, 4 Feb 2013 02:52:26 +0000 (19:52 -0700)
committerAmos Jeffries <squid3@treenet.co.nz>
Mon, 4 Feb 2013 02:52:26 +0000 (19:52 -0700)
 Detected by Coverity Scan. Issues 740426, 740427, 740499.

lib/rfcnb/session.c

index 58ee6b190b8d6d50978ca1500d3244aeda0ad149..4aaf11b764bca8c9a7266c2d28fd72d4d6a99479 100644 (file)
@@ -79,6 +79,7 @@ RFCNB_Call(char *Called_Name, char *Calling_Name, char *Called_Address, int port
     con->errn = 0;              /* no error yet */
     con->timeout = 0;           /* no timeout   */
     con->redirects = 0;
+    con->redirect_list = con->last_addr = NULL;
 
     /* Resolve that name into an IP address */
 
@@ -208,6 +209,7 @@ RFCNB_Send(struct RFCNB_Con *Con_Handle, struct RFCNB_Pkt *udata, int Length)
 
         /* No need to change RFCNB_errno as it was done by put_pkt ...     */
 
+        RFCNB_Free_Pkt(pkt);
         return (RFCNBE_Bad);    /* Should be able to write that lot ... */
 
     }
@@ -256,7 +258,7 @@ RFCNB_Recv(void *con_Handle, struct RFCNB_Pkt *Data, int Length)
 #ifdef RFCNB_DEBUG
         fprintf(stderr, "Bad packet return in RFCNB_Recv... \n");
 #endif
-
+        RFCNB_Free_Pkt(pkt);
         return (RFCNBE_Bad);
 
     }