[CFT][patch] mandoc: don't segfault on empty tbl(1) continuation blocks
Ingo Schwarze
schwarze at usta.de
Thu Jul 18 15:00:24 UTC 2019
Hi Baptiste, hi Eygene,
Baptiste Daroussin wrote on Wed, Jul 17, 2019 at 01:16:56PM +0200:
> On Wed, Jul 17, 2019 at 01:39:42PM +0300, Eygene Ryabinkin wrote:
>> but I believe that 'cpp' still can be NULL and will try to see
>> if it is triggerable.
I'm not sure what you mean here.
Do you think that in tbl_hrule(), there is a possibility that *cpp
might still be accessed even though cpp == NULL? If so, where and
how exactly?
As far as i can see, cpp can indeed easily be NULL anywhere in
tbl_hrule(), but it seems to me that for each access, != NULL
is checked immediately before.
If you still see a potential problem somewhere, please do speak up.
The table formatting logic is indeed complicated, so it's not
inconceivable that i still missed an edge case.
> As for the test case, the best would be that this test ends up
> incorporated in the upstream testsuite
Done, see the commit below.
Yours,
Ingo
Log Message:
-----------
new test for an empty text block; from rea@ via bapt@ (FreeBSD)
Modified Files:
--------------
mandoc/regress/tbl/data:
Makefile
Added Files:
-----------
mandoc/regress/tbl/data:
block_empty.in
block_empty.out_ascii
Revision Data
-------------
--- /dev/null
+++ regress/tbl/data/block_empty.in
@@ -0,0 +1,19 @@
+.\" $OpenBSD: block_empty.in,v 1.1 2019/07/18 14:38:47 schwarze Exp $
+.TH TBL-DATA-BLOCK_EMPTY 1 "July 17, 2019"
+.SH NAME
+tbl-data-block_empty \- empty text block
+.SH DESCRIPTION
+normal text
+.TS
+|l|l|.
+_
+A test
+_
+table T{
+T}
+_
+.TE
+.SH AUTHORS
+.MT rea at FreeBSD.org
+Eygene Ryabinkin
+.ME
--- /dev/null
+++ regress/tbl/data/block_empty.out_ascii
@@ -0,0 +1,22 @@
+TBL-DATA-BLOCK_EMPTY(1) General Commands Manual TBL-DATA-BLOCK_EMPTY(1)
+
+
+
+NNAAMMEE
+ tbl-data-block_empty - empty text block
+
+DDEESSCCRRIIPPTTIIOONN
+ normal text
+
+ +------+------+
+ |A | test |
+ +------+------+
+ |table | |
+ +------+------+
+
+AAUUTTHHOORRSS
+ Eygene Ryabinkin <rea at FreeBSD.org>
+
+
+
+OpenBSD July 17, 2019 TBL-DATA-BLOCK_EMPTY(1)
Index: Makefile
===================================================================
RCS file: /home/cvs/mandoc/mandoc/regress/tbl/data/Makefile,v
retrieving revision 1.4
retrieving revision 1.5
diff -Lregress/tbl/data/Makefile -Lregress/tbl/data/Makefile -u -p -r1.4 -r1.5
--- regress/tbl/data/Makefile
+++ regress/tbl/data/Makefile
@@ -1,6 +1,7 @@
-# $OpenBSD: Makefile,v 1.4 2017/07/04 20:59:17 schwarze Exp $
+# $OpenBSD: Makefile,v 1.5 2019/07/18 14:38:47 schwarze Exp $
-REGRESS_TARGETS = blankline block_unclosed block_width block_wrap empty insert
+REGRESS_TARGETS = blankline block_empty block_unclosed block_width
+REGRESS_TARGETS += block_wrap empty insert
LINT_TARGETS = block_unclosed empty insert
# groff-1.22.3 defect:
More information about the freebsd-current
mailing list