瀏覽代碼

HPCC-17110 Jsocket appendv4range properly handles dash chars

- Verifies dashes only appear in 4th octet of IPv4 formatted ip address

Signed-off-by: Rodrigo Pastrana <rodrigo.pastrana@lexisnexis.com>
Rodrigo Pastrana 8 年之前
父節點
當前提交
13d450e5cf
共有 1 個文件被更改,包括 12 次插入3 次删除
  1. 12 3
      system/jlib/jsocket.cpp

+ 12 - 3
system/jlib/jsocket.cpp

@@ -5811,9 +5811,18 @@ inline bool appendv4range(SocketEndpointArray *array,char *str,SocketEndpoint &e
             *s = 0;
             s = (char *)getnum(s+1,port);
         }
-        else if (*s=='-') {
-            *s = 0;
-            s = (char *)getnum(s+1,rng);
+        else if (*s=='-')
+        {
+            if (!notip && dc==3 )//don't assume '-' is an ip range delimiter
+            {                    //also, IP range is only supported in 4rth octet
+                *s = 0;
+                s = (char *)getnum(s+1,rng);
+            }
+            else
+            {
+                notip = true;
+                s++;
+            }
         }
         else if (*s=='*') {
             *s = 0;