aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/read.c
diff options
context:
space:
mode:
authorKristaps Dzonsons <kristaps@bsd.lv>2011-04-03 10:11:25 +0000
committerKristaps Dzonsons <kristaps@bsd.lv>2011-04-03 10:11:25 +0000
commitc73cb94fe8c6fd59cba4e899deeb3d1743191888 (patch)
tree0924835286002042f5bd50695abde7337aa0a650 /read.c
parent6aea171ce4f8a9efa60896f1af807e2440a019e5 (diff)
downloadmandoc-c73cb94fe8c6fd59cba4e899deeb3d1743191888.tar.gz
mandoc-c73cb94fe8c6fd59cba4e899deeb3d1743191888.tar.zst
mandoc-c73cb94fe8c6fd59cba4e899deeb3d1743191888.zip
If wlevel in mparse_alloc() is greater than MANDOCLEVEL_FATAL, we'll
throw assertions due to per-file-error not being properly set in mmsg(). This is reasonable behaviour (we shouldn't be able to ignore FATAL after all). Thus, make sure wlevel is sanitised.
Diffstat (limited to 'read.c')
-rw-r--r--read.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/read.c b/read.c
index 1da8f164..6c240c2b 100644
--- a/read.c
+++ b/read.c
@@ -1,4 +1,4 @@
-/* $Id: read.c,v 1.9 2011/04/03 10:05:37 kristaps Exp $ */
+/* $Id: read.c,v 1.10 2011/04/03 10:11:25 kristaps Exp $ */
/*
* Copyright (c) 2008, 2009, 2010, 2011 Kristaps Dzonsons <kristaps@bsd.lv>
* Copyright (c) 2010, 2011 Ingo Schwarze <schwarze@openbsd.org>
@@ -662,6 +662,8 @@ mparse_alloc(enum mparset inttype, enum mandoclevel wlevel, mandocmsg mmsg, void
{
struct mparse *curp;
+ assert(wlevel <= MANDOCLEVEL_FATAL);
+
curp = mandoc_calloc(1, sizeof(struct mparse));
curp->wlevel = wlevel;