diff options
author | Ingo Schwarze <schwarze@openbsd.org> | 2017-07-14 17:16:16 +0000 |
---|---|---|
committer | Ingo Schwarze <schwarze@openbsd.org> | 2017-07-14 17:16:16 +0000 |
commit | 842880c9311d3fa7e5e6e669380a844fa2b6b834 (patch) | |
tree | 943faf62dad375fd576fda861bd9676fa839bf5a | |
parent | cf79b154bdf78ac5b9721076b30e81be3f404d07 (diff) | |
download | mandoc-842880c9311d3fa7e5e6e669380a844fa2b6b834.tar.gz |
The .Dd and .TH macros must interrupt .ce, too;
fixing tree corruption and assertion failure found by jsg@ with afl(1)
-rw-r--r-- | roff.c | 3 |
1 files changed, 2 insertions, 1 deletions
@@ -1559,7 +1559,8 @@ roff_parseln(struct roff *r, int ln, struct buf *buf, int *offs) /* For now, let high level macros abort .ce mode. */ if (ctl && roffce_node != NULL && - (t == TOKEN_NONE || t == ROFF_EQ || t == ROFF_TS)) { + (t == TOKEN_NONE || t == ROFF_Dd || t == ROFF_EQ || + t == ROFF_TH || t == ROFF_TS)) { r->man->last = roffce_node; r->man->next = ROFF_NEXT_SIBLING; roffce_lines = 0; |