changeset 5006:8f08888b3c0f draft

if: Don't use a variable length buffer Otherwise SSP complains.
author Roy Marples <roy@marples.name>
date Sun, 26 Jan 2020 15:46:16 +0000
parents ffb5b2280ed2
children a5d64cd4b391
files src/if.c
diffstat 1 files changed, 6 insertions(+), 2 deletions(-) [+]
line wrap: on
line diff
--- a/src/if.c	Sat Jan 25 13:27:36 2020 +0000
+++ b/src/if.c	Sun Jan 26 15:46:16 2020 +0000
@@ -183,14 +183,18 @@
 {
 	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) {