Pull up following revision(s) (requested by skrll in ticket #1465):
usr.sbin/makemandb/makemandb.c: revision 1.63 Don't index outside the mdocs array of function pointers. Analysis and suggested fixes from Tom Lane. I played it safe and went with (my variation of) the minimal fix. PR port-hppa/56118: sporadic app crashes in HPPA -current
This commit is contained in:
parent
e8e6dc4f79
commit
fe3b9ff7e9
|
@ -1,4 +1,4 @@
|
|||
/* $NetBSD: makemandb.c,v 1.60 2019/05/18 07:56:43 abhinav Exp $ */
|
||||
/* $NetBSD: makemandb.c,v 1.60.2.1 2022/06/06 11:34:11 martin Exp $ */
|
||||
/*
|
||||
* Copyright (c) 2011 Abhinav Upadhyay <er.abhinav.upadhyay@gmail.com>
|
||||
* Copyright (c) 2011 Kristaps Dzonsons <kristaps@bsd.lv>
|
||||
|
@ -17,7 +17,7 @@
|
|||
*/
|
||||
|
||||
#include <sys/cdefs.h>
|
||||
__RCSID("$NetBSD: makemandb.c,v 1.60 2019/05/18 07:56:43 abhinav Exp $");
|
||||
__RCSID("$NetBSD: makemandb.c,v 1.60.2.1 2022/06/06 11:34:11 martin Exp $");
|
||||
|
||||
#include <sys/stat.h>
|
||||
#include <sys/types.h>
|
||||
|
@ -1079,16 +1079,19 @@ mdoc_parse_Sh(const struct roff_node *n, mandb_rec *rec)
|
|||
|
||||
if (n->type == ROFFT_TEXT) {
|
||||
mdoc_parse_section(n->sec, n->string, rec);
|
||||
} else if (mdocs[n->tok] == pmdoc_Xr) {
|
||||
} else if (n->tok >= MDOC_Dd && n->tok < MDOC_MAX) {
|
||||
const int tok_idx = n->tok - MDOC_Dd;
|
||||
if (mdocs[tok_idx] == pmdoc_Xr) {
|
||||
/*
|
||||
* When encountering other inline macros,
|
||||
* call pmdoc_macro_handler.
|
||||
*/
|
||||
pmdoc_macro_handler(n, rec, MDOC_Xr);
|
||||
xr_found = 1;
|
||||
} else if (mdocs[n->tok] == pmdoc_Pp) {
|
||||
} else if (mdocs[tok_idx] == pmdoc_Pp) {
|
||||
pmdoc_macro_handler(n, rec, MDOC_Pp);
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* If an Xr macro was encountered then the child node has
|
||||
|
|
Loading…
Reference in New Issue