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
Diff: NetworkInterface.cpp
- 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; } /*************************************************************************************************/