summaryrefslogtreecommitdiffstats
path: root/usr.bin/mandoc/tbl_term.c
diff options
context:
space:
mode:
authorschwarze <schwarze@openbsd.org>2015-01-30 17:31:20 +0000
committerschwarze <schwarze@openbsd.org>2015-01-30 17:31:20 +0000
commitcb1515965e22f6ee49d207ee6fbe66f94e9230ba (patch)
tree02f8cc31065f881e03a8b83aa7744c996bdb4d79 /usr.bin/mandoc/tbl_term.c
parentremove rndc (from bind) as well, ok deraadt (diff)
downloadwireguard-openbsd-cb1515965e22f6ee49d207ee6fbe66f94e9230ba.tar.xz
wireguard-openbsd-cb1515965e22f6ee49d207ee6fbe66f94e9230ba.zip
Delete the redundant tbl span flags, just inspect the actual data
where needed, which is less fragile. This fixes a subtle NULL pointer access to tp->tbl.cols: Due to a bug in the man(7) parser, the first span of a table can end up in a .TP head, in which case tblcalc() was never called. Found by jsg@ with afl.
Diffstat (limited to 'usr.bin/mandoc/tbl_term.c')
-rw-r--r--usr.bin/mandoc/tbl_term.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/usr.bin/mandoc/tbl_term.c b/usr.bin/mandoc/tbl_term.c
index 91cda335046..40b24a63439 100644
--- a/usr.bin/mandoc/tbl_term.c
+++ b/usr.bin/mandoc/tbl_term.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: tbl_term.c,v 1.24 2015/01/30 04:08:37 schwarze Exp $ */
+/* $OpenBSD: tbl_term.c,v 1.25 2015/01/30 17:31:20 schwarze Exp $ */
/*
* Copyright (c) 2009, 2011 Kristaps Dzonsons <kristaps@bsd.lv>
* Copyright (c) 2011, 2012, 2014, 2015 Ingo Schwarze <schwarze@openbsd.org>
@@ -79,7 +79,7 @@ term_tbl(struct termp *tp, const struct tbl_span *sp)
* calculate the table widths and decimal positions.
*/
- if (sp->flags & TBL_SPAN_FIRST) {
+ if (tp->tbl.cols == NULL) {
term_flushln(tp);
tp->tbl.len = term_tbl_len;
@@ -187,7 +187,7 @@ term_tbl(struct termp *tp, const struct tbl_span *sp)
* existing table configuration and set it to NULL.
*/
- if (sp->flags & TBL_SPAN_LAST) {
+ if (sp->next == NULL) {
if (sp->opts->opts & (TBL_OPT_DBOX | TBL_OPT_BOX)) {
tbl_hrule(tp, sp, 1);
tp->skipvsp = 1;