Module: kamailio
Branch: master
Commit: b54573ca9167c807a1de39634bed04cb7953dce0
URL: 
https://github.com/kamailio/kamailio/commit/b54573ca9167c807a1de39634bed04cb7953dce0

Author: Daniel-Constantin Mierla <[email protected]>
Committer: Daniel-Constantin Mierla <[email protected]>
Date: 2019-09-20T14:25:31+02:00

xmlrpc: reset fields in case of error for building fake via

---

Modified: src/modules/xmlrpc/http.c

---

Diff:  
https://github.com/kamailio/kamailio/commit/b54573ca9167c807a1de39634bed04cb7953dce0.diff
Patch: 
https://github.com/kamailio/kamailio/commit/b54573ca9167c807a1de39634bed04cb7953dce0.patch

---

diff --git a/src/modules/xmlrpc/http.c b/src/modules/xmlrpc/http.c
index 04e1cd06eb..81fb6df9b7 100644
--- a/src/modules/xmlrpc/http.c
+++ b/src/modules/xmlrpc/http.c
@@ -67,6 +67,7 @@ static int insert_fake_via(sip_msg_t* msg, char* via, int 
via_len)
                LM_ERR("out of pkg memory\n");
                goto error;
        }
+       memset(vb, 0, sizeof(struct via_body));
 
        msg->h_via1 = pkg_malloc(sizeof(hdr_field_t));
        if (!msg->h_via1) {
@@ -74,7 +75,6 @@ static int insert_fake_via(sip_msg_t* msg, char* via, int 
via_len)
                goto error;
        }
        memset(msg->h_via1, 0, sizeof(hdr_field_t));
-       memset(vb, 0, sizeof(struct via_body));
 
        /* FIXME: The code below would break if the VIA prefix
         * gets changed in config.h
@@ -121,10 +121,12 @@ static int insert_fake_via(sip_msg_t* msg, char* via, int 
via_len)
 error:
        if (vb) {
                free_via_list(vb);
-               pkg_free(vb);
        }
 
-       if (msg->h_via1) pkg_free(msg->h_via1);
+       if (msg->h_via1) {
+               pkg_free(msg->h_via1);
+               msg->h_via1 = 0;
+       }
        return -1;
 }
 


_______________________________________________
Kamailio (SER) - Development Mailing List
[email protected]
https://lists.kamailio.org/cgi-bin/mailman/listinfo/sr-dev

Reply via email to