ID:355 - Fix formatting warning in get_cmdline_ipaddr()

Commit also adds validation prior casting down to uint8_t.
This commit is contained in:
Zdenek Styblik 2015-01-17 12:25:50 +01:00
parent 33f9336e85
commit d36cfcb817

View File

@ -1255,9 +1255,16 @@ static int
get_cmdline_ipaddr(char * arg, uint8_t * buf) get_cmdline_ipaddr(char * arg, uint8_t * buf)
{ {
uint32_t ip1, ip2, ip3, ip4; uint32_t ip1, ip2, ip3, ip4;
if (sscanf(arg, "%d.%d.%d.%d", &ip1, &ip2, &ip3, &ip4) != 4) { if (sscanf(arg,
"%" PRIu32 ".%" PRIu32 ".%" PRIu32 ".%" PRIu32,
&ip1, &ip2, &ip3, &ip4) != 4) {
lprintf(LOG_ERR, "Invalid IP address: %s", arg); lprintf(LOG_ERR, "Invalid IP address: %s", arg);
return -1; return (-1);
}
if (ip1 > UINT8_MAX || ip2 > UINT8_MAX
|| ip3 > UINT8_MAX || ip4 > UINT8_MAX) {
lprintf(LOG_ERR, "Invalid IP address: %s", arg);
return (-1);
} }
buf[0] = (uint8_t)ip1; buf[0] = (uint8_t)ip1;
buf[1] = (uint8_t)ip2; buf[1] = (uint8_t)ip2;