aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/tag.c
diff options
context:
space:
mode:
authorIngo Schwarze <schwarze@openbsd.org>2020-03-13 16:16:58 +0000
committerIngo Schwarze <schwarze@openbsd.org>2020-03-13 16:16:58 +0000
commit83a7b814d91cedb0fa4c43fa8afea16c3d311369 (patch)
treedc8d8cb71e3df33f99de3ac1a320142b51636717 /tag.c
parentf10f0fe3970de778125a29d73e65e63f32c138e1 (diff)
downloadmandoc-83a7b814d91cedb0fa4c43fa8afea16c3d311369.tar.gz
mandoc-83a7b814d91cedb0fa4c43fa8afea16c3d311369.tar.zst
mandoc-83a7b814d91cedb0fa4c43fa8afea16c3d311369.zip
Properly reset the validation part of the tagging module between files.
This fixes a crash in makewhatis(8) encountered by naddy@.
Diffstat (limited to 'tag.c')
-rw-r--r--tag.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/tag.c b/tag.c
index 50e74f48..6a38ad68 100644
--- a/tag.c
+++ b/tag.c
@@ -1,4 +1,4 @@
-/* $Id: tag.c,v 1.28 2020/03/13 15:32:29 schwarze Exp $ */
+/* $Id: tag.c,v 1.29 2020/03/13 16:16:58 schwarze Exp $ */
/*
* Copyright (c) 2015,2016,2018,2019,2020 Ingo Schwarze <schwarze@openbsd.org>
*
@@ -59,6 +59,8 @@ tag_free(void)
struct tag_entry *entry;
unsigned int slot;
+ if (tag_data.info.free == NULL)
+ return;
entry = ohash_first(&tag_data, &slot);
while (entry != NULL) {
free(entry->nodes);
@@ -66,6 +68,7 @@ tag_free(void)
entry = ohash_next(&tag_data, &slot);
}
ohash_delete(&tag_data);
+ tag_data.info.free = NULL;
}
/*