Subject: Re: [PATCH] refs: release strbuf after use in check_refname_component()

From: Jeff King <[email-masked]>
Date: Mon, 29 Dec 2014 16:13:13 -0500

On Mon, Dec 29, 2014 at 09:37:43AM -0800, Junio C Hamano wrote:

> René Scharfe <[email-masked]> writes:
> 
> > Signed-off-by: Rene Scharfe <[email-masked]>
> > ---
> >  refs.c | 2 +-
> >  1 file changed, 1 insertion(+), 1 deletion(-)
> >
> > diff --git a/refs.c b/refs.c
> > index 5fcacc6..ed3b2cb 100644
> > --- a/refs.c
> > +++ b/refs.c
> > @@ -2334,7 +2334,7 @@ static struct ref_lock *lock_ref_sha1_basic(const char *refname,
> >  			struct strbuf err = STRBUF_INIT;
> >  			unable_to_lock_message(ref_file, errno, &err);
> >  			error("%s", err.buf);
> > -			strbuf_reset(&err);
> > +			strbuf_release(&err);
> >  			goto error_return;
> >  		}
> >  	}
> 
> The subject does not seem to match what the patch is doing, but the
> patch is obviously correct ;-)

The worst part of this is that I got it right in my hacked-up version:

  http://article.gmane.org/gmane.comp.version-control.git/259853

but then after much discussion, we dropped all of the lead-in patches,
and I sent Ronnie's unedited:

  http://article.gmane.org/gmane.comp.version-control.git/259911

All that looking and I didn't notice the release/reset difference
between our two versions. Sheesh.

Which is all a roundabout way of saying "yes, René's patch is obviously
correct". :)

-Peff