summaryrefslogtreecommitdiffstats
path: root/usr.bin/mandoc/roff.c
diff options
context:
space:
mode:
authorschwarze <schwarze@openbsd.org>2017-07-14 17:16:13 +0000
committerschwarze <schwarze@openbsd.org>2017-07-14 17:16:13 +0000
commit7d8d207553b6e89180388afa35cbda5c602bae25 (patch)
tree5df689a4f39c981f7126608501ff4ff390f42bdc /usr.bin/mandoc/roff.c
parentkernels don't build without MROUTING because ip_var.h only sometimes (diff)
downloadwireguard-openbsd-7d8d207553b6e89180388afa35cbda5c602bae25.tar.xz
wireguard-openbsd-7d8d207553b6e89180388afa35cbda5c602bae25.zip
The .Dd and .TH macros must interrupt .ce, too;
fixing tree corruption and assertion failure found by jsg@ with afl(1)
Diffstat (limited to 'usr.bin/mandoc/roff.c')
-rw-r--r--usr.bin/mandoc/roff.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/usr.bin/mandoc/roff.c b/usr.bin/mandoc/roff.c
index 2b35d82a4e9..dfaf843c7c1 100644
--- a/usr.bin/mandoc/roff.c
+++ b/usr.bin/mandoc/roff.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: roff.c,v 1.195 2017/07/14 16:49:16 schwarze Exp $ */
+/* $OpenBSD: roff.c,v 1.196 2017/07/14 17:16:13 schwarze Exp $ */
/*
* Copyright (c) 2008-2012, 2014 Kristaps Dzonsons <kristaps@bsd.lv>
* Copyright (c) 2010-2015, 2017 Ingo Schwarze <schwarze@openbsd.org>
@@ -1557,7 +1557,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;