summaryrefslogtreecommitdiffstats
path: root/usr.sbin
diff options
context:
space:
mode:
authoramdmi3 <amdmi3@FreeBSD.org>2015-10-06 15:30:41 +0000
committeramdmi3 <amdmi3@FreeBSD.org>2015-10-06 15:30:41 +0000
commit0a831af75f7066b6f867f86e7997e2917f3e8f08 (patch)
tree3d4e0fe931f7e06a0d99c4b97d3eadbf82634a08 /usr.sbin
parent9ce81fb544434b96a521ff5e30bb70af91c01e55 (diff)
downloadFreeBSD-src-0a831af75f7066b6f867f86e7997e2917f3e8f08.zip
FreeBSD-src-0a831af75f7066b6f867f86e7997e2917f3e8f08.tar.gz
MFC r288120: Fix crash on parsing some inf files
Diffstat (limited to 'usr.sbin')
-rw-r--r--usr.sbin/ndiscvt/inf.c6
-rw-r--r--usr.sbin/ndiscvt/inf.h2
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;
OpenPOWER on IntegriCloud