diff options
author | amdmi3 <amdmi3@FreeBSD.org> | 2015-10-06 15:30:41 +0000 |
---|---|---|
committer | amdmi3 <amdmi3@FreeBSD.org> | 2015-10-06 15:30:41 +0000 |
commit | 0a831af75f7066b6f867f86e7997e2917f3e8f08 (patch) | |
tree | 3d4e0fe931f7e06a0d99c4b97d3eadbf82634a08 | |
parent | 9ce81fb544434b96a521ff5e30bb70af91c01e55 (diff) | |
download | FreeBSD-src-0a831af75f7066b6f867f86e7997e2917f3e8f08.zip FreeBSD-src-0a831af75f7066b6f867f86e7997e2917f3e8f08.tar.gz |
MFC r288120: Fix crash on parsing some inf files
-rw-r--r-- | usr.sbin/ndiscvt/inf.c | 6 | ||||
-rw-r--r-- | usr.sbin/ndiscvt/inf.h | 2 |
2 files changed, 7 insertions, 1 deletions
diff --git a/usr.sbin/ndiscvt/inf.c b/usr.sbin/ndiscvt/inf.c index fe4db6a..4b30da0 100644 --- a/usr.sbin/ndiscvt/inf.c +++ b/usr.sbin/ndiscvt/inf.c @@ -887,6 +887,12 @@ regkey_add (const char *r) void push_word (const char *w) { + + if (idx == W_MAX) { + fprintf(stderr, "too many words; try bumping W_MAX in inf.h\n"); + exit(1); + } + if (w && strlen(w)) words[idx++] = w; else diff --git a/usr.sbin/ndiscvt/inf.h b/usr.sbin/ndiscvt/inf.h index 8d0b0c1..ba08d67 100644 --- a/usr.sbin/ndiscvt/inf.h +++ b/usr.sbin/ndiscvt/inf.h @@ -4,7 +4,7 @@ * $FreeBSD$ */ -#define W_MAX 16 +#define W_MAX 32 struct section { const char * name; |