浏览代码

siputils: is_tel_number() constraints on lenght and first digit after +

- minimum one char and if first is +, then it must have another one,
  which should not be 0
Daniel-Constantin Mierla 10 年之前
父节点
当前提交
66b6f7e452
共有 1 个文件被更改,包括 8 次插入2 次删除
  1. 8 2
      modules/siputils/checks.c

+ 8 - 2
modules/siputils/checks.c

@@ -741,11 +741,17 @@ int is_tel_number(sip_msg_t *msg, char *_sp, char* _s2)
 		LM_ERR("cannot get parameter value\n");
 		return -1;
 	}
-	if(tval.len<=0)
+	if(tval.len<1)
 		return -2;
 
 	i = 0;
-	if(tval.s[i]=='+') i++;
+	if(tval.s[0]=='+') {
+		if(tval.len<2)
+			return -2;
+		if(tval.s[1]<'1' || tval.s[1]>'9')
+			return -2;
+		i = 2;
+	}
 
 	for(; i<tval.len; i++) {
 		if(tval.s[i]<'0' || tval.s[i]>'9')