Johannes Schindelin <johannes.schinde...@gmx.de> writes:

> There is really no reason why we would need to hold onto the allocated
> string longer than necessary.

Yup.  The longer we make the duration between the allocation and the
standard release, the more likely future code would add early returns
that forget to release the memory.

Looks correct; will queue.


> Reported by Coverity.
>
> Signed-off-by: Johannes Schindelin <johannes.schinde...@gmx.de>
> ---
>  worktree.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/worktree.c b/worktree.c
> index bae787cf8d7..89a81b13de3 100644
> --- a/worktree.c
> +++ b/worktree.c
> @@ -399,6 +399,7 @@ int submodule_uses_worktrees(const char *path)
>  
>       /* The env would be set for the superproject. */
>       get_common_dir_noenv(&sb, submodule_gitdir);
> +     free(submodule_gitdir);
>  
>       /*
>        * The check below is only known to be good for repository format
> @@ -418,7 +419,6 @@ int submodule_uses_worktrees(const char *path)
>       /* See if there is any file inside the worktrees directory. */
>       dir = opendir(sb.buf);
>       strbuf_release(&sb);
> -     free(submodule_gitdir);
>  
>       if (!dir)
>               return 0;

Reply via email to