diff options
Diffstat (limited to 'shared/netutils/netutils.c')
-rw-r--r-- | shared/netutils/netutils.c | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/shared/netutils/netutils.c b/shared/netutils/netutils.c index 84b4405c4..cd1422f7c 100644 --- a/shared/netutils/netutils.c +++ b/shared/netutils/netutils.c @@ -63,7 +63,13 @@ void netutils_parse_ipv4_addr(mp_obj_t addr_in, uint8_t *out_ip, netutils_endian return; } const char *s = addr_str; - const char *s_top = addr_str + addr_len; + const char *s_top; + // Scan for the end of valid address characters + for (s_top = addr_str; s_top < addr_str + addr_len; s_top++) { + if (!(*s_top == '.' || (*s_top >= '0' && *s_top <= '9'))) { + break; + } + } for (mp_uint_t i = 3; ; i--) { mp_uint_t val = 0; for (; s < s_top && *s != '.'; s++) { |