Renaud Allard <[email protected]> wrote: > netgroup_mkdb(8) calls abort() when _ng_parse() returns > _NG_ERROR for a malformed netgroup entry. > > The switch in ng_load() at netgroup_mkdb.c:213 handles > _NG_NONE, _NG_NAME, and _NG_GROUP, but not _NG_ERROR (-1). > A truncated or malformed netgroup entry causes _ng_parse() to > return _NG_ERROR, which falls through to the default case: > > default: > abort(); > > A 28-byte input reproduces the crash: > > mygroup (host1, 1, dn1) (hos > > Confirmed on OpenBSD 7.8/arm64 with the system binary. > > Fix: handle _NG_ERROR with errx(), matching the existing > error handling at line 263 for other parse failures. > > Found by AFL++ fuzzing.
makes sense to me; okay op@ if someone wants to commit it. > Index: usr.sbin/netgroup_mkdb/netgroup_mkdb.c > =================================================================== > RCS file: /cvs/src/usr.sbin/netgroup_mkdb/netgroup_mkdb.c,v > retrieving revision 1.24 > diff -u -p -r1.24 netgroup_mkdb.c > --- usr.sbin/netgroup_mkdb/netgroup_mkdb.c 4 Jan 2023 13:00:11 -0000 > 1.24 > +++ usr.sbin/netgroup_mkdb/netgroup_mkdb.c > @@ -272,6 +272,9 @@ ng_load(const char *fname) > } > break; > > + case _NG_ERROR: > + errx(1, "syntax error in %s", fname); > + > default: > abort(); > break;
