diff options
author | Ingo Schwarze <schwarze@cvs.openbsd.org> | 2014-12-18 20:58:01 +0000 |
---|---|---|
committer | Ingo Schwarze <schwarze@cvs.openbsd.org> | 2014-12-18 20:58:01 +0000 |
commit | 07def54fd26412ddd605c19319930bf2261c9eeb (patch) | |
tree | 30247293415334a90b941bcfb6f7acd71e9ac3ab /usr.bin/mandoc | |
parent | 5f4b891e0c9b089b6d923059a4db3a6979185ec6 (diff) |
Don't let .Ta creep into an already-closed list; same as for .It.
Fixes an assertion found by jsg@ with afl.
Diffstat (limited to 'usr.bin/mandoc')
-rw-r--r-- | usr.bin/mandoc/mdoc_macro.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/usr.bin/mandoc/mdoc_macro.c b/usr.bin/mandoc/mdoc_macro.c index 3dbd6602e8c..eb4fa301f18 100644 --- a/usr.bin/mandoc/mdoc_macro.c +++ b/usr.bin/mandoc/mdoc_macro.c @@ -1,4 +1,4 @@ -/* $OpenBSD: mdoc_macro.c,v 1.114 2014/12/18 03:09:42 schwarze Exp $ */ +/* $OpenBSD: mdoc_macro.c,v 1.115 2014/12/18 20:58:00 schwarze Exp $ */ /* * Copyright (c) 2008-2012 Kristaps Dzonsons <kristaps@bsd.lv> * Copyright (c) 2010, 2012, 2013, 2014 Ingo Schwarze <schwarze@openbsd.org> @@ -1557,7 +1557,8 @@ phrase_ta(MACRO_PROT_ARGS) /* Make sure we are in a column list or ignore this macro. */ n = mdoc->last; - while (n != NULL && n->tok != MDOC_Bl) + while (n != NULL && + (n->tok != MDOC_Bl || n->flags & (MDOC_VALID | MDOC_BREAK))) n = n->parent; if (n == NULL || n->norm->Bl.type != LIST_column) { mandoc_msg(MANDOCERR_TA_STRAY, mdoc->parse, |