]> git.ipfire.org Git - thirdparty/dhcpcd.git/commitdiff
if: Don't use a variable length buffer
authorRoy Marples <roy@marples.name>
Sun, 26 Jan 2020 15:46:16 +0000 (15:46 +0000)
committerRoy Marples <roy@marples.name>
Sun, 26 Jan 2020 15:46:16 +0000 (15:46 +0000)
Otherwise SSP complains.

src/if.c

index 75776512ca0a69a2ae6ef81d2868183bc3a4f76d..2fa6e13333ff793847759be1d181acd3db5eb492 100644 (file)
--- a/src/if.c
+++ b/src/if.c
@@ -183,14 +183,18 @@ if_randomisemac(struct interface *ifp)
 {
        uint32_t randnum;
        size_t hwlen = ifp->hwlen, rlen = 0;
-       uint8_t buf[hwlen], *bp = buf, *rp = (uint8_t *)&randnum;
-       char sbuf[hwlen * 3];
+       uint8_t buf[HWADDR_LEN], *bp = buf, *rp = (uint8_t *)&randnum;
+       char sbuf[HWADDR_LEN * 3];
        int retval;
 
        if (hwlen == 0) {
                errno = ENOTSUP;
                return -1;
        }
+       if (hwlen > sizeof(buf)) {
+               errno = ENOBUFS;
+               return -1;
+       }
 
        for (; hwlen != 0; hwlen--) {
                if (rlen == 0) {