From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from scc-mailout-kit-01.scc.kit.edu (scc-mailout-kit-01.scc.kit.edu [129.13.231.81]) by mandoc.bsd.lv (OpenSMTPD) with ESMTP id 900d2020 for ; Thu, 18 Jul 2019 10:00:21 -0500 (EST) Received: from asta-nat.asta.uni-karlsruhe.de ([172.22.63.82] helo=hekate.usta.de) by scc-mailout-kit-01.scc.kit.edu with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (envelope-from ) id 1ho7tL-0002Vw-Au; Thu, 18 Jul 2019 17:00:20 +0200 Received: from donnerwolke.usta.de ([172.24.96.3]) by hekate.usta.de with esmtp (Exim 4.77) (envelope-from ) id 1ho7tK-0000mc-Nx; Thu, 18 Jul 2019 17:00:18 +0200 Received: from athene.usta.de ([172.24.96.10]) by donnerwolke.usta.de with esmtp (Exim 4.84_2) (envelope-from ) id 1ho7tJ-0005dj-H6; Thu, 18 Jul 2019 17:00:17 +0200 Received: from localhost (athene.usta.de [local]) by athene.usta.de (OpenSMTPD) with ESMTPA id 593b7e10; Thu, 18 Jul 2019 17:00:18 +0200 (CEST) Date: Thu, 18 Jul 2019 17:00:18 +0200 From: Ingo Schwarze To: Baptiste Daroussin , Eygene Ryabinkin Cc: freebsd-current@FreeBSD.org, tech@mandoc.bsd.lv Subject: Re: [CFT][patch] mandoc: don't segfault on empty tbl(1) continuation blocks Message-ID: <20190718150018.GB67545@athene.usta.de> References: <20190716193124.yrrntrtah22aky5n@phoenix.codelabs.ru> <20190717071201.beem6et6dybhby7m@ivaldir.net> <20190717103942.fkunwe3utxvmdc5n@void.codelabs.ru> <20190717111655.eyq673itr76fj224@ivaldir.net> X-Mailinglist: mandoc-tech Reply-To: tech@mandoc.bsd.lv MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Content-Transfer-Encoding: quoted-printable In-Reply-To: <20190717111655.eyq673itr76fj224@ivaldir.net> User-Agent: Mutt/1.8.0 (2017-02-23) 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 =3D=3D NULL? If so, where and how exactly? As far as i can see, cpp can indeed easily be NULL anywhere in=20 tbl_hrule(), but it seems to me that for each access, !=3D 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@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_EMPT= Y(1) + + + +N=08NA=08AM=08ME=08E + tbl-data-block_empty - empty text block + +D=08DE=08ES=08SC=08CR=08RI=08IP=08PT=08TI=08IO=08ON=08N + normal text + + +------+------+ + |A | test | + +------+------+ + |table | | + +------+------+ + +A=08AU=08UT=08TH=08HO=08OR=08RS=08S + Eygene Ryabinkin + + + +OpenBSD July 17, 2019 TBL-DATA-BLOCK_EMPT= Y(1) Index: Makefile =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D 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 -r= 1.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 $ =20 -REGRESS_TARGETS =3D blankline block_unclosed block_width block_wrap empty= insert +REGRESS_TARGETS =3D blankline block_empty block_unclosed block_width +REGRESS_TARGETS +=3D block_wrap empty insert LINT_TARGETS =3D block_unclosed empty insert =20 # groff-1.22.3 defect: -- To unsubscribe send an email to tech+unsubscribe@mandoc.bsd.lv