[sr-dev] git:master:2c425c16: drouting: extra safety checks for str pointers

Daniel-Constantin Mierla miconda at gmail.com
Thu May 14 12:00:27 CEST 2015


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

Author: Daniel-Constantin Mierla <miconda at gmail.com>
Committer: Daniel-Constantin Mierla <miconda at gmail.com>
Date: 2015-05-14T09:59:58+02:00

drouting: extra safety checks for str pointers

---

Modified: modules/drouting/drouting.c

---

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

---

diff --git a/modules/drouting/drouting.c b/modules/drouting/drouting.c
index 1c94fe3..3c79f26 100644
--- a/modules/drouting/drouting.c
+++ b/modules/drouting/drouting.c
@@ -563,7 +563,7 @@ static inline str* build_ruri(struct sip_uri *uri, int strip, str *pri,
 	}
 	memcpy(p, uri->user.s+strip, uri->user.len-strip);
 	p += uri->user.len-strip;
-	if (uri->passwd.len) {
+	if (uri->passwd.s && uri->passwd.len) {
 		*(p++)=':';
 		memcpy(p, uri->passwd.s, uri->passwd.len);
 		p += uri->passwd.len;
@@ -571,12 +571,12 @@ static inline str* build_ruri(struct sip_uri *uri, int strip, str *pri,
 	*(p++)='@';
 	memcpy(p, hostport->s, hostport->len);
 	p += hostport->len;
-	if (uri->params.len) {
+	if (uri->params.s && uri->params.len) {
 		*(p++)=';';
 		memcpy(p, uri->params.s, uri->params.len);
 		p += uri->params.len;
 	}
-	if (uri->headers.len) {
+	if (uri->headers.s && uri->headers.len) {
 		*(p++)='?';
 		memcpy(p, uri->headers.s, uri->headers.len);
 		p += uri->headers.len;




More information about the sr-dev mailing list