Răsfoiți Sursa

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=').
Stefan Mititelu 10 ani în urmă
părinte
comite
d956f397c8
1 a modificat fișierele cu 16 adăugiri și 0 ștergeri
  1. 16 0
      modules/uac/replace.c

+ 16 - 0
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++;