config_file: honor error

Return an error if we can't write an updated version of the config file
after config_delete.

Along with that, fix an uninitialized warning.

Signed-off-by: schu <schu-github@schulog.org>
This commit is contained in:
schu 2011-12-16 11:39:21 +01:00
parent be00b00dd1
commit e95849c14f

View File

@ -406,7 +406,8 @@ static int config_get(git_config_file *cfg, const char *name, const char **out)
static int config_delete(git_config_file *cfg, const char *name) static int config_delete(git_config_file *cfg, const char *name)
{ {
cvar_t *iter, *prev; int error;
cvar_t *iter, *prev = NULL;
diskfile_backend *b = (diskfile_backend *)cfg; diskfile_backend *b = (diskfile_backend *)cfg;
CVAR_LIST_FOREACH (&b->var_list, iter) { CVAR_LIST_FOREACH (&b->var_list, iter) {
@ -419,9 +420,11 @@ static int config_delete(git_config_file *cfg, const char *name)
git__free(iter->value); git__free(iter->value);
iter->value = NULL; iter->value = NULL;
config_write(b, iter); error = config_write(b, iter);
cvar_free(iter); cvar_free(iter);
return GIT_SUCCESS; return error == GIT_SUCCESS ?
GIT_SUCCESS :
git__rethrow(error, "Failed to update config file");
} }
/* Store it for the next round */ /* Store it for the next round */
prev = iter; prev = iter;