Index: head/usr.sbin/ndiscvt/inf.h =================================================================== --- head/usr.sbin/ndiscvt/inf.h +++ head/usr.sbin/ndiscvt/inf.h @@ -4,7 +4,7 @@ * $FreeBSD$ */ -#define W_MAX 16 +#define W_MAX 32 struct section { const char * name; Index: head/usr.sbin/ndiscvt/inf.c =================================================================== --- head/usr.sbin/ndiscvt/inf.c +++ head/usr.sbin/ndiscvt/inf.c @@ -887,6 +887,12 @@ 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