From 9b8998aeec9c4dff695ae4108965677d90d9c9c7 Mon Sep 17 00:00:00 2001 From: Nicholas Marriott Date: Tue, 27 Nov 2012 16:12:29 +0000 Subject: Correctly aggregate together errors from nested config files (with source-file). Fix by Thomas Adam, reported by Sam Livingstone-Gray --- cfg.c | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) (limited to 'cfg.c') diff --git a/cfg.c b/cfg.c index ae7d9a30..3da6ea4d 100644 --- a/cfg.c +++ b/cfg.c @@ -34,9 +34,10 @@ void printflike2 cfg_print(struct cmd_ctx *, const char *, ...); void printflike2 cfg_error(struct cmd_ctx *, const char *, ...); -char *cfg_cause; -int cfg_finished; -struct causelist cfg_causes = ARRAY_INITIALIZER; +char *cfg_cause; +int cfg_finished; +int cfg_references; +struct causelist cfg_causes; /* ARGSUSED */ void printflike2 @@ -89,6 +90,8 @@ load_cfg(const char *path, struct cmd_ctx *ctxin, struct causelist *causes) } n = 0; + cfg_references++; + line = NULL; retval = CMD_RETURN_NORMAL; while ((buf = fgetln(f, &len))) { @@ -171,6 +174,8 @@ load_cfg(const char *path, struct cmd_ctx *ctxin, struct causelist *causes) } fclose(f); + cfg_references--; + return (retval); } -- cgit