aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJonathan Neuschäfer <j.neuschaefer@gmx.net>2011-07-18 12:38:43 +0200
committerMax Kellermann <max@duempel.org>2011-07-18 22:03:40 +0200
commitc49c69d6ea0b7670f70066f0735fcffc69966d46 (patch)
tree64485630dea8b7eaece71dc09d6f8c656945b16c
parentd5684f74440fec77b3bc7c80a8396c79e4e489ee (diff)
downloadmpd-c49c69d6ea0b7670f70066f0735fcffc69966d46.tar.gz
mpd-c49c69d6ea0b7670f70066f0735fcffc69966d46.tar.xz
mpd-c49c69d6ea0b7670f70066f0735fcffc69966d46.zip
conf: add missing fclose in error path
This patch seems a bit ugly, maybe it would be a bit cleaner with gotos.
-rw-r--r--src/conf.c11
1 files changed, 10 insertions, 1 deletions
diff --git a/src/conf.c b/src/conf.c
index 705942085..14dac93a6 100644
--- a/src/conf.c
+++ b/src/conf.c
@@ -367,6 +367,7 @@ config_read_file(const char *file, GError **error_r)
assert(*line != 0);
g_propagate_prefixed_error(error_r, error,
"line %i: ", count);
+ fclose(fp);
return false;
}
@@ -378,6 +379,7 @@ config_read_file(const char *file, GError **error_r)
g_set_error(error_r, config_quark(), 0,
"unrecognized parameter in config file at "
"line %i: %s\n", count, name);
+ fclose(fp);
return false;
}
@@ -387,6 +389,7 @@ config_read_file(const char *file, GError **error_r)
"config parameter \"%s\" is first defined "
"on line %i and redefined on line %i\n",
name, param->line, count);
+ fclose(fp);
return false;
}
@@ -398,6 +401,7 @@ config_read_file(const char *file, GError **error_r)
if (*line != '{') {
g_set_error(error_r, config_quark(), 0,
"line %i: '{' expected", count);
+ fclose(fp);
return false;
}
@@ -406,12 +410,15 @@ config_read_file(const char *file, GError **error_r)
g_set_error(error_r, config_quark(), 0,
"line %i: Unknown tokens after '{'",
count);
+ fclose(fp);
return false;
}
param = config_read_block(fp, &count, string, error_r);
- if (param == NULL)
+ if (param == NULL) {
+ fclose(fp);
return false;
+ }
} else {
/* a string value */
@@ -428,6 +435,7 @@ config_read_file(const char *file, GError **error_r)
g_error_free(error);
}
+ fclose(fp);
return false;
}
@@ -435,6 +443,7 @@ config_read_file(const char *file, GError **error_r)
g_set_error(error_r, config_quark(), 0,
"line %i: Unknown tokens after value",
count);
+ fclose(fp);
return false;
}