diff options
author | Junio C Hamano <gitster@pobox.com> | 2021-08-04 13:28:52 -0700 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2021-08-04 13:28:52 -0700 |
commit | 31f9acf9ce29ae210b54997f7fb388a2dc543d53 (patch) | |
tree | ec42e72471831dd47a31bd467e32b4bce6499be7 /diffcore-rename.c | |
parent | 10f57e0eb9070bf00c45def2980a47eacbae8316 (diff) | |
parent | 9a863b3358b84c627c8129defb9c127ec73e8e30 (diff) | |
download | git-31f9acf9ce29ae210b54997f7fb388a2dc543d53.tar.gz |
Merge branch 'ah/plugleaks'
Leak plugging.
* ah/plugleaks:
reset: clear_unpack_trees_porcelain to plug leak
builtin/rebase: fix options.strategy memory lifecycle
builtin/merge: free found_ref when done
builtin/mv: free or UNLEAK multiple pointers at end of cmd_mv
convert: release strbuf to avoid leak
read-cache: call diff_setup_done to avoid leak
ref-filter: also free head for ATOM_HEAD to avoid leak
diffcore-rename: move old_dir/new_dir definition to plug leak
builtin/for-each-repo: remove unnecessary argv copy to plug leak
builtin/submodule--helper: release unused strbuf to avoid leak
environment: move strbuf into block to plug leak
fmt-merge-msg: free newly allocated temporary strings when done
Diffstat (limited to 'diffcore-rename.c')
-rw-r--r-- | diffcore-rename.c | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/diffcore-rename.c b/diffcore-rename.c index 2618bb07c1..c95857b51f 100644 --- a/diffcore-rename.c +++ b/diffcore-rename.c @@ -448,9 +448,9 @@ static void update_dir_rename_counts(struct dir_rename_info *info, const char *oldname, const char *newname) { - char *old_dir = xstrdup(oldname); - char *new_dir = xstrdup(newname); - char new_dir_first_char = new_dir[0]; + char *old_dir; + char *new_dir; + const char new_dir_first_char = newname[0]; int first_time_in_loop = 1; if (!info->setup) @@ -475,6 +475,10 @@ static void update_dir_rename_counts(struct dir_rename_info *info, */ return; + + old_dir = xstrdup(oldname); + new_dir = xstrdup(newname); + while (1) { int drd_flag = NOT_RELEVANT; |