From 2c425c16efdc70e76d7471156f9f2c6eefa4b001 Mon Sep 17 00:00:00 2001 From: Daniel-Constantin Mierla Date: Thu, 14 May 2015 09:59:58 +0200 Subject: [PATCH] drouting: extra safety checks for str pointers --- modules/drouting/drouting.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/modules/drouting/drouting.c b/modules/drouting/drouting.c index 1c94fe32925..3c79f2644cd 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;