mirror of
https://git.proxmox.com/git/libgit2
synced 2025-06-24 00:58:22 +00:00
pack-objects: fix memory leak in packbuilder_config
This commit is contained in:
parent
0b2437bb68
commit
39c9dd24d3
@ -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)
|
|||||||
#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)
|
|||||||
|
|
||||||
#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)
|
||||||
|
Loading…
Reference in New Issue
Block a user