aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/regress
diff options
context:
space:
mode:
authorIngo Schwarze <schwarze@openbsd.org>2020-09-01 18:25:27 +0000
committerIngo Schwarze <schwarze@openbsd.org>2020-09-01 18:25:27 +0000
commit835540e0c710d0fcef85cc4e79f3200d559bc2c9 (patch)
tree892f10a95a8c810db492fb001ba07a501400fda8 /regress
parent74317de919ffbe0b012c3dc4777d6b55037b810a (diff)
downloadmandoc-835540e0c710d0fcef85cc4e79f3200d559bc2c9.tar.gz
mandoc-835540e0c710d0fcef85cc4e79f3200d559bc2c9.tar.zst
mandoc-835540e0c710d0fcef85cc4e79f3200d559bc2c9.zip
Ignore unreasonably large spacing modifiers in tbl layouts.
Jan Schreiber <jes at posteo dot de> ran afl on mandoc and it turned out mandoc tried to use spacing modifiers so large that they would trigger assertion failures in term_ascii.c, function locale_advance().
Diffstat (limited to 'regress')
-rw-r--r--regress/tbl/layout/Makefile10
-rw-r--r--regress/tbl/layout/spacing-nogroff.in13
-rw-r--r--regress/tbl/layout/spacing-nogroff.out_ascii18
-rw-r--r--regress/tbl/layout/spacing-nogroff.out_lint1
-rw-r--r--regress/tbl/layout/spacing.in43
-rw-r--r--regress/tbl/layout/spacing.out_ascii39
6 files changed, 120 insertions, 4 deletions
diff --git a/regress/tbl/layout/Makefile b/regress/tbl/layout/Makefile
index 2cff5851..61fb6ad4 100644
--- a/regress/tbl/layout/Makefile
+++ b/regress/tbl/layout/Makefile
@@ -1,15 +1,17 @@
# $OpenBSD: Makefile,v 1.6 2020/01/11 20:56:26 schwarze Exp $
REGRESS_TARGETS = badspan center complex empty emptycol emptyline
-REGRESS_TARGETS += lines lines-nogroff numbers shortlines span
-LINT_TARGETS = badspan complex empty
+REGRESS_TARGETS += lines lines-nogroff numbers
+REGRESS_TARGETS += shortlines spacing spacing-nogroff span
+LINT_TARGETS = badspan complex empty spacing-nogroff
-# groff-1.22.3 defects:
+# groff-1.22.4 defects:
# - When the layout is completely empty,
# GNU eqn produces no output whatsoever for the whole table.
# - When there is no horizontal line at the top,
# vertical lines extend beyond the top of the table.
+# - Excessive spacing modifiers in the layout are honoured.
-SKIP_GROFF = empty lines-nogroff
+SKIP_GROFF = empty lines-nogroff spacing-nogroff
.include <bsd.regress.mk>
diff --git a/regress/tbl/layout/spacing-nogroff.in b/regress/tbl/layout/spacing-nogroff.in
new file mode 100644
index 00000000..926c975f
--- /dev/null
+++ b/regress/tbl/layout/spacing-nogroff.in
@@ -0,0 +1,13 @@
+.\" $OpenBSD$
+.TH TBL-LAYOUT-SPACING 1 "September 1, 2020"
+.SH NAME
+tbl-layout-spacing-nogroff \- excessive spacing modifier
+.SH DESCRIPTION
+initial text
+.TS
+box tab(:);
+R 10 L.
+a:b
+.TE
+.sp
+final text
diff --git a/regress/tbl/layout/spacing-nogroff.out_ascii b/regress/tbl/layout/spacing-nogroff.out_ascii
new file mode 100644
index 00000000..f4d68e74
--- /dev/null
+++ b/regress/tbl/layout/spacing-nogroff.out_ascii
@@ -0,0 +1,18 @@
+TBL-LAYOUT-SPACING(1) General Commands Manual TBL-LAYOUT-SPACING(1)
+
+
+
+NNAAMMEE
+ tbl-layout-spacing-nogroff - excessive spacing modifier
+
+DDEESSCCRRIIPPTTIIOONN
+ initial text
+
+ +------+
+ |a b |
+ +------+
+ final text
+
+
+
+OpenBSD September 1, 2020 TBL-LAYOUT-SPACING(1)
diff --git a/regress/tbl/layout/spacing-nogroff.out_lint b/regress/tbl/layout/spacing-nogroff.out_lint
new file mode 100644
index 00000000..6f659c21
--- /dev/null
+++ b/regress/tbl/layout/spacing-nogroff.out_lint
@@ -0,0 +1 @@
+mandoc: spacing-nogroff.in:9:3: ERROR: ignoring excessive spacing in tbl layout: 10
diff --git a/regress/tbl/layout/spacing.in b/regress/tbl/layout/spacing.in
new file mode 100644
index 00000000..228334b7
--- /dev/null
+++ b/regress/tbl/layout/spacing.in
@@ -0,0 +1,43 @@
+.\" $OpenBSD$
+.TH TBL-LAYOUT-SPACING 1 "September 1, 2020"
+.SH NAME
+tbl-layout-spacing \- spacing modifiers
+.SH DESCRIPTION
+default spacing:
+.TS
+box tab(:);
+R L.
+a:b
+.TE
+.sp
+spacing 0:
+.TS
+box tab(:);
+R 0 L.
+a:b
+.TE
+.sp
+spacing 1:
+.TS
+box tab(:);
+R 1 L.
+a:b
+.TE
+.sp
+spacing 2:
+.TS
+allbox tab(:);
+R 2 L.
+a:b
+.TE
+.sp
+spacing 5:
+.TS
+allbox tab(:);
+R 5|| L.
+a:b
+.TE
+.sp
+leaked tab settings:
+.br
+a b c d e f
diff --git a/regress/tbl/layout/spacing.out_ascii b/regress/tbl/layout/spacing.out_ascii
new file mode 100644
index 00000000..3d51d7d5
--- /dev/null
+++ b/regress/tbl/layout/spacing.out_ascii
@@ -0,0 +1,39 @@
+TBL-LAYOUT-SPACING(1) General Commands Manual TBL-LAYOUT-SPACING(1)
+
+
+
+NNAAMMEE
+ tbl-layout-spacing - spacing modifiers
+
+DDEESSCCRRIIPPTTIIOONN
+ default spacing:
+
+ +------+
+ |a b |
+ +------+
+ spacing 0:
+
+ +---+
+ |ab |
+ +---+
+ spacing 1:
+
+ +----+
+ |a b |
+ +----+
+ spacing 2:
+
+ +--+--+
+ |a |b |
+ +--+--+
+ spacing 5:
+
+ +---++---+
+ |a || b |
+ +---++---+
+ leaked tab settings:
+ a b cdef
+
+
+
+OpenBSD September 1, 2020 TBL-LAYOUT-SPACING(1)