Host library for controlling a WiConnect enabled Wi-Fi module.

Dependents:   wiconnect-ota_example wiconnect-web_setup_example wiconnect-test-console wiconnect-tcp_server_example ... more

Revision:
40:4b4306f3d829
Parent:
31:59fac148a8d5
--- a/NetworkInterface.cpp	Mon Feb 23 20:30:18 2015 -0800
+++ b/NetworkInterface.cpp	Mon Feb 23 22:21:50 2015 -0800
@@ -354,14 +354,14 @@
 //-----------------------------------------------------------------------------------------------
 
 
-/*************************************************************************************************/
-bool NetworkInterface::strToIp(const char *str, uint32_t *intPtr)
-{
-    if (!intPtr)
-    {
-        return false;
-    }
-    uint32_t ip = 0;
+/*************************************************************************************************/
+bool NetworkInterface::strToIp(const char *str, uint32_t *intPtr)
+{
+    if (!intPtr)
+    {
+        return false;
+    }
+    uint32_t ip = 0;
     int i;
     const char *tok;
 
@@ -371,17 +371,24 @@
         char buf[4];
 
         tok = strchr(str, '.');
+
+        const int len = (int)(tok - str);
         if(tok == NULL)
         {
-            if(i < 3)
+            if(i < 3 || strlen(str) > 3)
             {
                 return false;
             }
             strcpy(buf, str);
         }
+        else if(len > 3)
+        {
+            return false;
+        }
         else
         {
-            strncpy(buf, str, tok - str);
+            strncpy(buf, str, len);
+            buf[len] = 0;
             ++tok;
         }
 
@@ -399,11 +406,11 @@
     if(i != 4)
     {
         return false;
-    }
-
-    *intPtr = ip;
-
-    return true;
+    }
+
+    *intPtr = ip;
+
+    return true;
 }
 
 /*************************************************************************************************/