diff options
| author | Roy Marples <roy@marples.name> | 2008-07-02 10:29:24 +0000 |
|---|---|---|
| committer | Roy Marples <roy@marples.name> | 2008-07-02 10:29:24 +0000 |
| commit | 0364eaca263c68cc1b3df82732bd12d1e45dea18 (patch) | |
| tree | 20af5859231132e669ccd34f727f74f66ec0cff5 /net.c | |
| parent | 3aa5b6ed1ad9d02968c9ab1baf1b4f88d3ec5e1c (diff) | |
| download | dhcpcd-0364eaca263c68cc1b3df82732bd12d1e45dea18.tar.xz | |
Ensure that we have at least 2 ocets.
Diffstat (limited to 'net.c')
| -rw-r--r-- | net.c | 11 |
1 files changed, 6 insertions, 5 deletions
@@ -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; } |
