Module: kamailio
Branch: 4.2
Commit: 416c887efa29b9ffb8b30264542747b143e2e64e
URL: 
https://github.com/kamailio/kamailio/commit/416c887efa29b9ffb8b30264542747b143e2e64e

Author: Stefan Mititelu <[email protected]>
Committer: Stefan Mititelu <[email protected]>
Date: 2015-11-23T13:22:30+02:00

p_usrloc: str->s string NULL check before str_dup

Don't shm_str_dup() NULL str->s strings.
Add checks to avoid shm_str_dup() warning.

(cherry picked from commit d1c6dc67b222e05be1ff90be9b38846f63866839)

---

Modified: modules/p_usrloc/ucontact.c

---

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

---

diff --git a/modules/p_usrloc/ucontact.c b/modules/p_usrloc/ucontact.c
index a29fccc..f07ec22 100644
--- a/modules/p_usrloc/ucontact.c
+++ b/modules/p_usrloc/ucontact.c
@@ -67,20 +67,31 @@ ucontact_t* new_ucontact(str* _dom, str* _aor, str* 
_contact, ucontact_info_t* _
        }
        memset(c, 0, sizeof(ucontact_t));
 
-       if (shm_str_dup( &c->c, _contact) < 0) goto error;
-       if (shm_str_dup( &c->callid, _ci->callid) < 0) goto error;
-       if (shm_str_dup( &c->user_agent, _ci->user_agent) < 0) goto error;
+       if (_contact->s && _contact->len > 0) {
+               if (shm_str_dup( &c->c, _contact) < 0) goto error;
+       }
 
-       if (_ci->received.s && _ci->received.len) {
+       if (_ci->callid->s && _ci->callid->len > 0) {
+               if (shm_str_dup( &c->callid, _ci->callid) < 0) goto error;
+       }
+
+       if (_ci->user_agent->s && _ci->user_agent->len > 0) {
+               if (shm_str_dup( &c->user_agent, _ci->user_agent) < 0) goto 
error;
+       }
+
+       if (_ci->received.s && _ci->received.len > 0) {
                if (shm_str_dup( &c->received, &_ci->received) < 0) goto error;
        }
-       if (_ci->path && _ci->path->len) {
+
+       if (_ci->path && _ci->path->len > 0) {
                if (shm_str_dup( &c->path, _ci->path) < 0) goto error;
        }
-       if (_ci->ruid.s && _ci->ruid.len) {
+
+       if (_ci->ruid.s && _ci->ruid.len > 0) {
                if (shm_str_dup( &c->ruid, &_ci->ruid) < 0) goto error;
        }
-       if (_ci->instance.s && _ci->instance.len) {
+
+       if (_ci->instance.s && _ci->instance.len > 0) {
                if (shm_str_dup( &c->instance, &_ci->instance) < 0) goto error;
        }
 


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

Reply via email to