summaryrefslogtreecommitdiffstats
path: root/net.c
diff options
context:
space:
mode:
authorRoy Marples <roy@marples.name>2008-07-02 10:29:24 +0000
committerRoy Marples <roy@marples.name>2008-07-02 10:29:24 +0000
commit0364eaca263c68cc1b3df82732bd12d1e45dea18 (patch)
tree20af5859231132e669ccd34f727f74f66ec0cff5 /net.c
parent3aa5b6ed1ad9d02968c9ab1baf1b4f88d3ec5e1c (diff)
downloaddhcpcd-0364eaca263c68cc1b3df82732bd12d1e45dea18.tar.xz
Ensure that we have at least 2 ocets.
Diffstat (limited to 'net.c')
-rw-r--r--net.c11
1 files changed, 6 insertions, 5 deletions
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;
}