diff options
author | Kristaps Dzonsons <kristaps@bsd.lv> | 2011-04-03 10:11:25 +0000 |
---|---|---|
committer | Kristaps Dzonsons <kristaps@bsd.lv> | 2011-04-03 10:11:25 +0000 |
commit | c73cb94fe8c6fd59cba4e899deeb3d1743191888 (patch) | |
tree | 0924835286002042f5bd50695abde7337aa0a650 | |
parent | 6aea171ce4f8a9efa60896f1af807e2440a019e5 (diff) | |
download | mandoc-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.
-rw-r--r-- | read.c | 4 |
1 files changed, 3 insertions, 1 deletions
@@ -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; |