diff options
| author | Roy Marples <roy@marples.name> | 2020-01-26 15:46:16 +0000 |
|---|---|---|
| committer | Roy Marples <roy@marples.name> | 2020-01-26 15:46:16 +0000 |
| commit | 004d7c8c0e8df866cdf791ef67acc5caab017f4e (patch) | |
| tree | 9e77e4c244658f032e622dd12b4633f2d0af36cd /src/if.c | |
| parent | 7cf5dcbe7ada18172db8414ce4e699f8eb84b3c5 (diff) | |
| download | dhcpcd-004d7c8c0e8df866cdf791ef67acc5caab017f4e.tar.xz | |
if: Don't use a variable length buffer
Otherwise SSP complains.
Diffstat (limited to 'src/if.c')
| -rw-r--r-- | src/if.c | 8 |
1 files changed, 6 insertions, 2 deletions
@@ -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) { |
