From: Roy Marples Date: Wed, 2 Jul 2008 10:29:24 +0000 (+0000) Subject: Ensure that we have at least 2 ocets. X-Git-Tag: v4.0.2~252 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=0364eaca263c68cc1b3df82732bd12d1e45dea18;p=thirdparty%2Fdhcpcd.git Ensure that we have at least 2 ocets. --- diff --git a/net.c b/net.c index ab5dd27d..f8aad4c0 100644 --- a/net.c +++ b/net.c @@ -155,6 +155,11 @@ hwaddr_aton(unsigned char *buffer, const char *addr) errno = EINVAL; return 0; } + /* We should have at least two entries 00:01 */ + if (len == 0 && *p == '\0') { + errno = EINVAL; + return 0; + } /* Ensure that next data is EOL or a seperator with data */ if (!(*p == '\0' || (*p == ':' && *(p + 1) != '\0'))) { errno = EINVAL; @@ -164,12 +169,8 @@ hwaddr_aton(unsigned char *buffer, const char *addr) p++; if (bp) *bp++ = (unsigned char)strtol(c, NULL, 16); - else - len++; + len++; } - - if (bp) - return bp - buffer; return len; }