Free "fake" on parse error.
authoraland <aland>
Tue, 15 May 2007 09:50:51 +0000 (09:50 +0000)
committeraland <aland>
Tue, 15 May 2007 09:50:51 +0000 (09:50 +0000)
This fixes Coverity bug #43

src/main/session.c

index 98d15c1..c7741a8 100644 (file)
@@ -59,6 +59,7 @@ int session_zap(REQUEST *request, uint32_t nasaddr, unsigned int port,
        /* Hold your breath */
 #define PAIR(n,v,t,e) do { \
                if(!(vp = paircreate(n, t))) { \
+                       request_free(&stopreq); \
                        radlog(L_ERR|L_CONS, "no memory"); \
                        pairfree(&(stopreq->packet->vps)); \
                        return 0; \
@@ -70,6 +71,7 @@ int session_zap(REQUEST *request, uint32_t nasaddr, unsigned int port,
 #define IPPAIR(n,v) PAIR(n,v,PW_TYPE_IPADDR,lvalue)
 #define STRINGPAIR(n,v) do { \
        if(!(vp = paircreate(n, PW_TYPE_STRING))) { \
+               request_free(&stopreq); \
                radlog(L_ERR|L_CONS, "no memory"); \
                pairfree(&(stopreq->packet->vps)); \
                return 0; \