X-Git-Url: http://git.droids-corp.org/?a=blobdiff_plain;f=lib%2Flibrte_cmdline%2Fcmdline_parse_etheraddr.c;h=dbfe4a61341337446ba3ae9675137aa361208159;hb=b2906abb0dd7207c237c81540c1d8e59e151a5bc;hp=5e11631282030af803fa269a7de0c4a63783a327;hpb=3031749c2df04a63cdcef186dcce3781e61436e8;p=dpdk.git diff --git a/lib/librte_cmdline/cmdline_parse_etheraddr.c b/lib/librte_cmdline/cmdline_parse_etheraddr.c index 5e11631282..dbfe4a6134 100644 --- a/lib/librte_cmdline/cmdline_parse_etheraddr.c +++ b/lib/librte_cmdline/cmdline_parse_etheraddr.c @@ -105,44 +105,47 @@ my_ether_aton(const char *a) errno = 0; o[i] = strtoul(a, &end, 16); if (errno != 0 || end == a || (end[0] != ':' && end[0] != 0)) - return (NULL); + return NULL; a = end + 1; } while (++i != sizeof (o) / sizeof (o[0]) && end[0] != 0); /* Junk at the end of line */ if (end[0] != 0) - return (NULL); + return NULL; /* Support the format XX:XX:XX:XX:XX:XX */ if (i == ETHER_ADDR_LEN) { while (i-- != 0) { if (o[i] > UINT8_MAX) - return (NULL); + return NULL; ether_addr.ea_oct[i] = (uint8_t)o[i]; } /* Support the format XXXX:XXXX:XXXX */ } else if (i == ETHER_ADDR_LEN / 2) { while (i-- != 0) { if (o[i] > UINT16_MAX) - return (NULL); + return NULL; ether_addr.ea_oct[i * 2] = (uint8_t)(o[i] >> 8); ether_addr.ea_oct[i * 2 + 1] = (uint8_t)(o[i] & 0xff); } /* unknown format */ } else - return (NULL); + return NULL; return (struct ether_addr *)ðer_addr; } int cmdline_parse_etheraddr(__attribute__((unused)) cmdline_parse_token_hdr_t *tk, - const char *buf, void *res) + const char *buf, void *res, unsigned ressize) { unsigned int token_len = 0; char ether_str[ETHER_ADDRSTRLENLONG+1]; struct ether_addr *tmp; + if (res && ressize < sizeof(struct ether_addr)) + return -1; + if (!buf || ! *buf) return -1; @@ -154,7 +157,7 @@ cmdline_parse_etheraddr(__attribute__((unused)) cmdline_parse_token_hdr_t *tk, (token_len != ETHER_ADDRSTRLENSHORT - 1)) return -1; - rte_snprintf(ether_str, token_len+1, "%s", buf); + snprintf(ether_str, token_len+1, "%s", buf); tmp = my_ether_aton(ether_str); if (tmp == NULL) @@ -170,7 +173,7 @@ cmdline_get_help_etheraddr(__attribute__((unused)) cmdline_parse_token_hdr_t *tk { int ret; - ret = rte_snprintf(dstbuf, size, "Ethernet address"); + ret = snprintf(dstbuf, size, "Ethernet address"); if (ret < 0) return -1; return 0;