X-Git-Url: http://git.droids-corp.org/?a=blobdiff_plain;f=src%2Flib%2Fcmdline_parse_etheraddr.c;fp=src%2Flib%2Fcmdline_parse_etheraddr.c;h=7a50e021d4ad08a07cb1906ffdb6f248b63c32ef;hb=b1d5b169352e57df3fc14c51ffad4b83f3e5613f;hp=e0528c52a090368bf5421367c7def44498753faa;hpb=11ba5b954689047f664873706964dc72878329f2;p=libcmdline.git diff --git a/src/lib/cmdline_parse_etheraddr.c b/src/lib/cmdline_parse_etheraddr.c index e0528c5..7a50e02 100644 --- a/src/lib/cmdline_parse_etheraddr.c +++ b/src/lib/cmdline_parse_etheraddr.c @@ -110,13 +110,16 @@ my_ether_aton(const char *a) 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_ADDRSTRLEN]; struct ether_addr *etheraddr = res; struct ether_addr *tmp; + if (res && ressize < sizeof(struct ether_addr)) + return -1; + /* if token is too big... */ token_len = snprintf(ether_str, sizeof(ether_str), "%s", buf); if (token_len >= sizeof(ether_str))