diff options
author | Linus Nordberg <linus@nordu.net> | 2012-04-03 16:56:23 +0200 |
---|---|---|
committer | Linus Nordberg <linus@nordu.net> | 2012-04-09 11:38:13 +0200 |
commit | ed6f9b47c51b6fc5540d24112883db8b6ca2931b (patch) | |
tree | e79053648aa1b65b742ad4d500ce3ae92deb389d | |
parent | f41042e6afb1d12275fd3f30a1ecb309b83a2937 (diff) |
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.
-rw-r--r-- | radsecproxy.c | 3 |
1 files changed, 2 insertions, 1 deletions
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) { |