On 03/08, Johannes Schindelin wrote:
> Hi Brandon,
> 
> On Tue, 7 Mar 2017, Brandon Williams wrote:
> 
> > On 03/07, Johannes Schindelin wrote:
> > >  const char *setup_git_directory_gently(int *nongit_ok)
> > >  {
> > > + struct strbuf cwd = STRBUF_INIT, dir = STRBUF_INIT, gitdir = 
> > > STRBUF_INIT;
> > 
> > I couldn't see any strbuf_release() calls for these strbufs so there may
> > be some memory leaking here.
> 
> You are correct, of course. Something like this may work:

Yep that should fix it!

> 
> -- snipsnap --
> diff --git a/setup.c b/setup.c
> index 9118b48590a..c822582b96e 100644
> --- a/setup.c
> +++ b/setup.c
> @@ -1027,6 +1027,8 @@ const char *setup_git_directory_gently(int *nongit_ok)
>       case GIT_DIR_HIT_MOUNT_POINT:
>               if (nongit_ok) {
>                       *nongit_ok = 1;
> +                     strbuf_release(&cwd);
> +                     strbuf_release(&dir);
>                       return NULL;
>               }
>               die(_("Not a git repository (or any parent up to mount point 
> %s)\n"
> @@ -1044,6 +1046,10 @@ const char *setup_git_directory_gently(int *nongit_ok)
>       startup_info->have_repository = !nongit_ok || !*nongit_ok;
>       startup_info->prefix = prefix;
>  
> +     strbuf_release(&cwd);
> +     strbuf_release(&dir);
> +     strbuf_release(&gitdir);
> +
>       return prefix;
>  }
>  

-- 
Brandon Williams

Reply via email to