From c73cb94fe8c6fd59cba4e899deeb3d1743191888 Mon Sep 17 00:00:00 2001 From: Kristaps Dzonsons Date: Sun, 3 Apr 2011 10:11:25 +0000 Subject: 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. --- read.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) 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 * Copyright (c) 2010, 2011 Ingo Schwarze @@ -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; -- cgit v1.2.3-56-ge451