summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorVicent Martí <tanoku@gmail.com>2011-12-20 16:27:25 -0800
committerVicent Martí <tanoku@gmail.com>2011-12-20 16:27:25 -0800
commit1bdba3386d9953c722d9302f414156104cc06945 (patch)
treefd2b83deaf8038ef59285574b7e9bfb2b418bc6e
parentbe00b00dd1468f1c625ca3fadc61f2a16edfb8d5 (diff)
parente95849c14f8c62a99f04600bb3a4f677156a78bd (diff)
downloadlibgit2-1bdba3386d9953c722d9302f414156104cc06945.tar.gz
Merge pull request #514 from schu/fix-warning-uninitialized
config_file: honor error
-rw-r--r--src/config_file.c9
1 files changed, 6 insertions, 3 deletions
diff --git a/src/config_file.c b/src/config_file.c
index 207bd2bdd..afa917a0b 100644
--- a/src/config_file.c
+++ b/src/config_file.c
@@ -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)
{
- cvar_t *iter, *prev;
+ int error;
+ cvar_t *iter, *prev = NULL;
diskfile_backend *b = (diskfile_backend *)cfg;
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);
iter->value = NULL;
- config_write(b, iter);
+ error = config_write(b, 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 */
prev = iter;