mirror of
https://git.proxmox.com/git/libgit2
synced 2025-05-04 19:50:19 +00:00
Fixed up memory leaks
This commit is contained in:
parent
73b51450a3
commit
c6d2a2c094
@ -207,10 +207,8 @@ int git_attr_add_macro(
|
|||||||
if (error == GIT_SUCCESS)
|
if (error == GIT_SUCCESS)
|
||||||
error = git_attr_cache__insert_macro(repo, macro);
|
error = git_attr_cache__insert_macro(repo, macro);
|
||||||
|
|
||||||
if (error < GIT_SUCCESS) {
|
if (error < GIT_SUCCESS)
|
||||||
git_attr_rule__free(macro);
|
git_attr_rule__free(macro);
|
||||||
git__free(macro);
|
|
||||||
}
|
|
||||||
|
|
||||||
return error;
|
return error;
|
||||||
}
|
}
|
||||||
|
@ -8,6 +8,7 @@ const char *git_attr__false = "[internal]__FALSE__";
|
|||||||
|
|
||||||
static int git_attr_fnmatch__parse(git_attr_fnmatch *spec, const char **base);
|
static int git_attr_fnmatch__parse(git_attr_fnmatch *spec, const char **base);
|
||||||
static int sort_by_hash_and_name(const void *a_raw, const void *b_raw);
|
static int sort_by_hash_and_name(const void *a_raw, const void *b_raw);
|
||||||
|
static void git_attr_rule__clear(git_attr_rule *rule);
|
||||||
|
|
||||||
int git_attr_cache__insert_macro(git_repository *repo, git_attr_rule *macro)
|
int git_attr_cache__insert_macro(git_repository *repo, git_attr_rule *macro)
|
||||||
{
|
{
|
||||||
@ -72,7 +73,7 @@ int git_attr_file__from_buffer(
|
|||||||
|
|
||||||
/* if the rule wasn't a pattern, on to the next */
|
/* if the rule wasn't a pattern, on to the next */
|
||||||
if (error != GIT_SUCCESS) {
|
if (error != GIT_SUCCESS) {
|
||||||
git_attr_rule__free(rule); /* free anything partially allocated */
|
git_attr_rule__clear(rule); /* reset rule contents */
|
||||||
if (error == GIT_ENOTFOUND)
|
if (error == GIT_ENOTFOUND)
|
||||||
error = GIT_SUCCESS;
|
error = GIT_SUCCESS;
|
||||||
} else {
|
} else {
|
||||||
@ -82,9 +83,8 @@ int git_attr_file__from_buffer(
|
|||||||
|
|
||||||
cleanup:
|
cleanup:
|
||||||
if (error != GIT_SUCCESS) {
|
if (error != GIT_SUCCESS) {
|
||||||
git__free(rule);
|
git_attr_rule__free(rule);
|
||||||
git_attr_file__free(attrs);
|
git_attr_file__free(attrs);
|
||||||
git__free(attrs);
|
|
||||||
} else {
|
} else {
|
||||||
*out = attrs;
|
*out = attrs;
|
||||||
}
|
}
|
||||||
@ -122,14 +122,15 @@ void git_attr_file__free(git_attr_file *file)
|
|||||||
if (!file)
|
if (!file)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
git_vector_foreach(&file->rules, i, rule) {
|
git_vector_foreach(&file->rules, i, rule)
|
||||||
git_attr_rule__free(rule);
|
git_attr_rule__free(rule);
|
||||||
}
|
|
||||||
|
|
||||||
git_vector_free(&file->rules);
|
git_vector_free(&file->rules);
|
||||||
|
|
||||||
git__free(file->path);
|
git__free(file->path);
|
||||||
file->path = NULL;
|
file->path = NULL;
|
||||||
|
|
||||||
|
git__free(file);
|
||||||
}
|
}
|
||||||
|
|
||||||
unsigned long git_attr_file__name_hash(const char *name)
|
unsigned long git_attr_file__name_hash(const char *name)
|
||||||
@ -505,7 +506,7 @@ int git_attr_assignment__parse(
|
|||||||
return error;
|
return error;
|
||||||
}
|
}
|
||||||
|
|
||||||
void git_attr_rule__free(git_attr_rule *rule)
|
static void git_attr_rule__clear(git_attr_rule *rule)
|
||||||
{
|
{
|
||||||
unsigned int i;
|
unsigned int i;
|
||||||
git_attr_assignment *assign;
|
git_attr_assignment *assign;
|
||||||
@ -525,3 +526,10 @@ void git_attr_rule__free(git_attr_rule *rule)
|
|||||||
|
|
||||||
git_vector_free(&rule->assigns);
|
git_vector_free(&rule->assigns);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void git_attr_rule__free(git_attr_rule *rule)
|
||||||
|
{
|
||||||
|
git_attr_rule__clear(rule);
|
||||||
|
git__free(rule);
|
||||||
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user