summaryrefslogtreecommitdiff
path: root/system/mandoc/tbl-colwidth-oob.patch
diff options
context:
space:
mode:
Diffstat (limited to 'system/mandoc/tbl-colwidth-oob.patch')
-rw-r--r--system/mandoc/tbl-colwidth-oob.patch62
1 files changed, 62 insertions, 0 deletions
diff --git a/system/mandoc/tbl-colwidth-oob.patch b/system/mandoc/tbl-colwidth-oob.patch
new file mode 100644
index 000000000..0b7b0acad
--- /dev/null
+++ b/system/mandoc/tbl-colwidth-oob.patch
@@ -0,0 +1,62 @@
+From mboxrd@z Thu Jan 1 00:00:00 1970
+Received: from localhost (fantadrom.bsd.lv [local])
+ by fantadrom.bsd.lv (OpenSMTPD) with ESMTPA id 0ff00a97
+ for <source@mandoc.bsd.lv>;
+ Fri, 29 Mar 2019 16:27:36 -0500 (EST)
+Date: Fri, 29 Mar 2019 16:27:36 -0500 (EST)
+X-Mailinglist: mandoc-source
+Reply-To: source@mandoc.bsd.lv
+MIME-Version: 1.0
+From: schwarze@mandoc.bsd.lv
+To: source@mandoc.bsd.lv
+Subject: mandoc: Set the maximum column index in a tbl(7) to the maximum *right*
+X-Mailer: activitymail 1.26, http://search.cpan.org/dist/activitymail/
+Content-Type: text/plain; charset=utf-8
+Message-ID: <e3fceff42218668d@fantadrom.bsd.lv>
+Archived-At: <http://inbox.vuxu.org/mandoc-source/e3fceff42218668d@fantadrom.bsd.lv/>
+List-Archive: <http://inbox.vuxu.org/mandoc-source/>
+List-Post: <mailto:source@mandoc.bsd.lv>
+
+Log Message:
+-----------
+Set the maximum column index in a tbl(7) to the maximum *right* edge
+of any cell span, not to the maximum *left* edge, which may be smaller
+if the last column of the table is only reached by horizontal spans,
+but not by any regular cell in any row of the table.
+Otherwise, the algorithm calculating column widths accessed memomy
+after the end of the colwidth[] array, while it was trying to handle
+the rightmost column(s).
+
+Crash reported by Jason Thorpe <thorpej at NetBSD>
+via https://gnats.netbsd.org/cgi-bin/query-pr-single.pl?number=54069
+and via Thomas Klausner (wiz@).
+Christos@ Zoulas sent a (correct, but slightly confusing) patch.
+The patch i'm committing here is easier to understand.
+
+Modified Files:
+--------------
+ mandoc:
+ out.c
+
+Revision Data
+-------------
+Index: out.c
+===================================================================
+RCS file: /home/cvs/mandoc/mandoc/out.c,v
+retrieving revision 1.77
+retrieving revision 1.78
+diff -Lout.c -Lout.c -u -p -r1.77 -r1.78
+--- a/out.c
++++ b/out.c
+@@ -149,7 +149,7 @@ tblcalc(struct rofftbl *tbl, const struc
+ gp = &first_group;
+ for (dp = sp->first; dp != NULL; dp = dp->next) {
+ icol = dp->layout->col;
+- while (icol > maxcol)
++ while (maxcol < icol + dp->hspans)
+ tbl->cols[++maxcol].spacing = SIZE_MAX;
+ col = tbl->cols + icol;
+ col->flags |= dp->layout->flags;
+--
+ To unsubscribe send an email to source+unsubscribe@mandoc.bsd.lv
+