]> git.ipfire.org Git - thirdparty/dhcpcd.git/commitdiff
Ensure that we have at least 2 ocets.
authorRoy Marples <roy@marples.name>
Wed, 2 Jul 2008 10:29:24 +0000 (10:29 +0000)
committerRoy Marples <roy@marples.name>
Wed, 2 Jul 2008 10:29:24 +0000 (10:29 +0000)
net.c

diff --git a/net.c b/net.c
index ab5dd27d63340b4d341ba9d9c64ea47d57c8eff1..f8aad4c0b8f01ca9162437fc89515848daa098f9 100644 (file)
--- 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;
 }