[sr-dev] git:master:82fc14da: Revert "Revert "p_usrloc: str->s string NULL check before str_dup""

Stefan Mititelu stefan.mititelu at 1and1.ro
Mon Nov 23 12:14:45 CET 2015


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

Author: Stefan Mititelu <stefan.mititelu at 1and1.ro>
Committer: Stefan Mititelu <stefan.mititelu at 1and1.ro>
Date: 2015-11-23T13:13:37+02:00

Revert "Revert "p_usrloc: str->s string NULL check before str_dup""

This reverts commit 90d5a98bb52a810e02f225e72faa1ab526b96bbb.

---

Modified: modules/p_usrloc/ucontact.c

---

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

---

diff --git a/modules/p_usrloc/ucontact.c b/modules/p_usrloc/ucontact.c
index 651bac0..72a5e65 100644
--- a/modules/p_usrloc/ucontact.c
+++ b/modules/p_usrloc/ucontact.c
@@ -60,20 +60,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;
 	}
 




More information about the sr-dev mailing list