From b3dd815817ebf3e3bb6e95b8e8b9cc6ed2c64ff8 Mon Sep 17 00:00:00 2001 From: Ingo Schwarze Date: Thu, 28 Apr 2022 16:21:09 +0000 Subject: The syntax of the roff(7) .mc request is quite special and the roff_onearg() parsing function is too generic, so provide a dedicated parsing function instead. This fixes an assertion failure when an \o escape sequence is passed as the argument; the bug was found by tb@ using afl(1). It also makes mandoc output more similar to groff in various cases. --- mandoc.h | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'mandoc.h') diff --git a/mandoc.h b/mandoc.h index 32914deb..1ed0d816 100644 --- a/mandoc.h +++ b/mandoc.h @@ -1,4 +1,4 @@ -/* $Id: mandoc.h,v 1.275 2022/04/24 13:38:46 schwarze Exp $ */ +/* $Id: mandoc.h,v 1.276 2022/04/28 16:21:09 schwarze Exp $ */ /* * Copyright (c) 2012-2022 Ingo Schwarze * Copyright (c) 2010, 2011, 2014 Kristaps Dzonsons @@ -165,6 +165,7 @@ enum mandocerr { MANDOCERR_SM_BAD, /* invalid Boolean argument: macro arg */ MANDOCERR_CHAR_FONT, /* argument contains two font escapes */ MANDOCERR_FT_BAD, /* unknown font, skipping request: ft font */ + MANDOCERR_MC_DIST, /* ignoring distance argument: mc ... arg */ MANDOCERR_TR_ODD, /* odd number of characters in request: tr char */ /* related to plain text */ @@ -221,6 +222,7 @@ enum mandocerr { MANDOCERR_BL_NOTYPE, /* missing list type, using -item: Bl */ MANDOCERR_CE_NONUM, /* argument is not numeric, using 1: ce ... */ MANDOCERR_CHAR_ARG, /* argument is not a character: char ... */ + MANDOCERR_MC_ESC, /* skipping unusable escape sequence: mc arg */ MANDOCERR_NM_NONAME, /* missing manual name, using "": Nm */ MANDOCERR_OS_UNAME, /* uname(3) system call failed, using UNKNOWN */ MANDOCERR_ST_BAD, /* unknown standard specifier: St standard */ -- cgit v1.2.3