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

Author: Daniel-Constantin Mierla <[email protected]>
Committer: Daniel-Constantin Mierla <[email protected]>
Date: 2014-12-22T21:40:52+01:00

nat_traversal: use local variable for port and proto on keepalive resolve

- safe execution for those resolving functions expecting PROTO_NONE
- reported by Jason Penton, FS#491

---

Modified: modules/nat_traversal/nat_traversal.c

---

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

---

diff --git a/modules/nat_traversal/nat_traversal.c 
b/modules/nat_traversal/nat_traversal.c
index 2f0ffbe..87aaf50 100644
--- a/modules/nat_traversal/nat_traversal.c
+++ b/modules/nat_traversal/nat_traversal.c
@@ -1510,6 +1510,8 @@ send_keepalive(NAT_Contact *contact)
        struct dest_info dst;
     int nat_port, len;
     str nat_ip;
+       unsigned short lport;
+       char lproto;
 
     if (keepalive_params.from == NULL) {
         if (contact->socket != last_socket) {
@@ -1554,7 +1556,9 @@ send_keepalive(NAT_Contact *contact)
     ptr = strchr(nat_ip.s, ':');
     nat_ip.len = ptr - nat_ip.s;
     nat_port = strtol(ptr+1, NULL, 10);
-    hostent = sip_resolvehost(&nat_ip, NULL, NULL);
+    lport = 0;
+    lproto = PROTO_NONE;
+    hostent = sip_resolvehost(&nat_ip, &lport, &lproto);
     hostent2su(&dst.to, hostent, 0, nat_port);
        dst.proto=PROTO_UDP;
        dst.send_sock=contact->socket;


_______________________________________________
sr-dev mailing list
[email protected]
http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-dev

Reply via email to