Module: kamailio
Branch: master
Commit: d956f397c8cea4774e5941bdad8f76ecc44acdd5
URL:
https://github.com/kamailio/kamailio/commit/d956f397c8cea4774e5941bdad8f76e…
Author: Stefan Mititelu <stefan.mititelu(a)1and1.ro>
Committer: Stefan Mititelu <stefan.mititelu(a)1and1.ro>
Date: 2015-11-03T15:50:40+02:00
uac: Sanity checks
Sanity checks for decode_uri(). Add NULL and len > 0 checks.
Segfault when vsf parameter was empty in the Route: header (e.g 'vsf=').
---
Modified: modules/uac/replace.c
---
Diff:
https://github.com/kamailio/kamailio/commit/d956f397c8cea4774e5941bdad8f76e…
Patch:
https://github.com/kamailio/kamailio/commit/d956f397c8cea4774e5941bdad8f76e…
---
diff --git a/modules/uac/replace.c b/modules/uac/replace.c
index 1c30fe2..354b2f9 100644
--- a/modules/uac/replace.c
+++ b/modules/uac/replace.c
@@ -128,6 +128,22 @@ static inline int decode_uri( str *src , str *dst)
int i,j;
signed char c;
+ /* sanity checks */
+ if (!src) {
+ LM_ERR("NULL src\n");
+ return -1;
+ }
+
+ if (!dst) {
+ LM_ERR("NULL dst\n");
+ return -1;
+ }
+
+ if (!src->s || src->len == 0) {
+ LM_ERR("empty src\n");
+ return -1;
+ }
+
/* Count '-' at end and disregard them */
for( n=0,i=src->len-1; src->s[i]=='-'; i--)
n++;