Merge branch 'ma/leakplugs'
Memory leaks in various codepaths have been plugged. * ma/leakplugs: pack-bitmap[-write]: use `object_array_clear()`, don't leak object_array: add and use `object_array_pop()` object_array: use `object_array_clear()`, not `free()` leak_pending: use `object_array_clear()`, not `free()` commit: fix memory leak in `reduce_heads()` builtin/commit: fix memory leak in `prepare_index()`
This commit is contained in:
@ -335,7 +335,7 @@ static void refresh_cache_or_die(int refresh_flags)
|
||||
static const char *prepare_index(int argc, const char **argv, const char *prefix,
|
||||
const struct commit *current_head, int is_status)
|
||||
{
|
||||
struct string_list partial;
|
||||
struct string_list partial = STRING_LIST_INIT_DUP;
|
||||
struct pathspec pathspec;
|
||||
int refresh_flags = REFRESH_QUIET;
|
||||
const char *ret;
|
||||
@ -380,7 +380,8 @@ static const char *prepare_index(int argc, const char **argv, const char *prefix
|
||||
warning(_("Failed to update main cache tree"));
|
||||
|
||||
commit_style = COMMIT_NORMAL;
|
||||
return get_lock_file_path(&index_lock);
|
||||
ret = get_lock_file_path(&index_lock);
|
||||
goto out;
|
||||
}
|
||||
|
||||
/*
|
||||
@ -403,7 +404,8 @@ static const char *prepare_index(int argc, const char **argv, const char *prefix
|
||||
if (write_locked_index(&the_index, &index_lock, CLOSE_LOCK))
|
||||
die(_("unable to write new_index file"));
|
||||
commit_style = COMMIT_NORMAL;
|
||||
return get_lock_file_path(&index_lock);
|
||||
ret = get_lock_file_path(&index_lock);
|
||||
goto out;
|
||||
}
|
||||
|
||||
/*
|
||||
@ -429,7 +431,8 @@ static const char *prepare_index(int argc, const char **argv, const char *prefix
|
||||
rollback_lock_file(&index_lock);
|
||||
}
|
||||
commit_style = COMMIT_AS_IS;
|
||||
return get_index_file();
|
||||
ret = get_index_file();
|
||||
goto out;
|
||||
}
|
||||
|
||||
/*
|
||||
@ -460,7 +463,6 @@ static const char *prepare_index(int argc, const char **argv, const char *prefix
|
||||
die(_("cannot do a partial commit during a cherry-pick."));
|
||||
}
|
||||
|
||||
string_list_init(&partial, 1);
|
||||
if (list_paths(&partial, !current_head ? NULL : "HEAD", prefix, &pathspec))
|
||||
exit(1);
|
||||
|
||||
@ -490,6 +492,9 @@ static const char *prepare_index(int argc, const char **argv, const char *prefix
|
||||
discard_cache();
|
||||
ret = get_lock_file_path(&false_lock);
|
||||
read_cache_from(ret);
|
||||
out:
|
||||
string_list_clear(&partial, 0);
|
||||
clear_pathspec(&pathspec);
|
||||
return ret;
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user