aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/tbl_term.c
diff options
context:
space:
mode:
authorIngo Schwarze <schwarze@openbsd.org>2017-07-31 16:14:10 +0000
committerIngo Schwarze <schwarze@openbsd.org>2017-07-31 16:14:10 +0000
commit4727ab9b79013eaa6f5c39488cdaf53604a34943 (patch)
treeddbf969022a815d2c070198e802cee7d745c2597 /tbl_term.c
parentea3e75363c1a526374ce4922e3ad0823294ef755 (diff)
downloadmandoc-4727ab9b79013eaa6f5c39488cdaf53604a34943.tar.gz
mandoc-4727ab9b79013eaa6f5c39488cdaf53604a34943.tar.zst
mandoc-4727ab9b79013eaa6f5c39488cdaf53604a34943.zip
Ignore explicitly specified negative column widths rather than
wrapping around to huge numbers and risking memory exhaustion; fixes Debian ps(1). Bug reported by Dr. Markus Waldeck.
Diffstat (limited to 'tbl_term.c')
-rw-r--r--tbl_term.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/tbl_term.c b/tbl_term.c
index fd03b813..c154a0e9 100644
--- a/tbl_term.c
+++ b/tbl_term.c
@@ -1,4 +1,4 @@
-/* $Id: tbl_term.c,v 1.56 2017/07/08 13:43:15 schwarze Exp $ */
+/* $Id: tbl_term.c,v 1.57 2017/07/31 16:14:10 schwarze Exp $ */
/*
* Copyright (c) 2009, 2011 Kristaps Dzonsons <kristaps@bsd.lv>
* Copyright (c) 2011,2012,2014,2015,2017 Ingo Schwarze <schwarze@openbsd.org>
@@ -51,7 +51,10 @@ static void tbl_word(struct termp *, const struct tbl_dat *);
static size_t
term_tbl_sulen(const struct roffsu *su, void *arg)
{
- return term_hen((const struct termp *)arg, su);
+ int i;
+
+ i = term_hen((const struct termp *)arg, su);
+ return i > 0 ? i : 0;
}
static size_t