Commit 39c9dd24 by Patrick Steinhardt

pack-objects: fix memory leak in packbuilder_config

parent 0b2437bb
...@@ -91,7 +91,7 @@ static unsigned name_hash(const char *name) ...@@ -91,7 +91,7 @@ static unsigned name_hash(const char *name)
static int packbuilder_config(git_packbuilder *pb) static int packbuilder_config(git_packbuilder *pb)
{ {
git_config *config; git_config *config;
int ret; int ret = 0;
int64_t val; int64_t val;
if ((ret = git_repository_config_snapshot(&config, pb->repo)) < 0) if ((ret = git_repository_config_snapshot(&config, pb->repo)) < 0)
...@@ -100,8 +100,10 @@ static int packbuilder_config(git_packbuilder *pb) ...@@ -100,8 +100,10 @@ static int packbuilder_config(git_packbuilder *pb)
#define config_get(KEY,DST,DFLT) do { \ #define config_get(KEY,DST,DFLT) do { \
ret = git_config_get_int64(&val, config, KEY); \ ret = git_config_get_int64(&val, config, KEY); \
if (!ret) (DST) = val; \ if (!ret) (DST) = val; \
else if (ret == GIT_ENOTFOUND) (DST) = (DFLT); \ else if (ret == GIT_ENOTFOUND) { \
else if (ret < 0) return -1; } while (0) (DST) = (DFLT); \
ret = 0; \
} else if (ret < 0) goto out; } while (0)
config_get("pack.deltaCacheSize", pb->max_delta_cache_size, config_get("pack.deltaCacheSize", pb->max_delta_cache_size,
GIT_PACK_DELTA_CACHE_SIZE); GIT_PACK_DELTA_CACHE_SIZE);
...@@ -113,9 +115,10 @@ static int packbuilder_config(git_packbuilder *pb) ...@@ -113,9 +115,10 @@ static int packbuilder_config(git_packbuilder *pb)
#undef config_get #undef config_get
out:
git_config_free(config); git_config_free(config);
return 0; return ret;
} }
int git_packbuilder_new(git_packbuilder **out, git_repository *repo) int git_packbuilder_new(git_packbuilder **out, git_repository *repo)
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment