瀏覽代碼

core: parse uri - check for invalid port values

(cherry picked from commit b7f753ddc727e1d7ab42e7abe607059e03976f8d)
Daniel-Constantin Mierla 4 年之前
父節點
當前提交
3dca9d6bff
共有 2 個文件被更改,包括 4 次插入0 次删除
  1. 1 0
      src/core/config.h
  2. 3 0
      src/core/parser/parse_uri.c

+ 1 - 0
src/core/config.h

@@ -95,6 +95,7 @@
 #define MY_BRANCH ";branch="
 #define MY_BRANCH_LEN (sizeof(MY_BRANCH) - 1)
 
+#define MAX_PORT_VAL 65535
 #define MAX_PORT_LEN 7 /* ':' + max 5 letters + \0 */
 
 #define CRLF "\r\n"

+ 3 - 0
src/core/parser/parse_uri.c

@@ -143,6 +143,9 @@ int parse_uri(char* buf, int len, struct sip_uri* uri)
 #define case_port( ch, var) \
 	case ch: \
 			(var)=(var)*10+ch-'0'; \
+			if((var) > MAX_PORT_VAL) { \
+				goto error_bad_port; \
+			}\
 			break
 
 #define still_at_user  \