From ed6f9b47c51b6fc5540d24112883db8b6ca2931b Mon Sep 17 00:00:00 2001 From: Linus Nordberg Date: Tue, 3 Apr 2012 16:56:23 +0200 Subject: [PATCH] Don't free memory which others are still using. In the error case in confserver_cb() where compileserverconfig() we used to go to errexit and have resonf, passed as an argument through ARG, freed. Other parts are still using that conf. --- radsecproxy.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/radsecproxy.c b/radsecproxy.c index b279418..2facb2b 100644 --- a/radsecproxy.c +++ b/radsecproxy.c @@ -2944,7 +2944,8 @@ int confserver_cb(struct gconffile **cf, void *arg, char *block, char *opt, char if (resconf || !conf->dynamiclookupcommand) { if (!compileserverconfig(conf, block)) - goto errexit; + return 0; /* Don't goto errexit and free resconf -- it's + * not ours to free. */ } if (!conf->secret) { -- 2.1.4