From: Junio C Hamano Date: Mon, 28 Mar 2016 17:58:56 GMT Subject: Re: [PATCH v3] path.c enter_repo(): fix unproper strbuf unwrapping and memory leakage Message-ID: In-Reply-To: <1459180638-6034-1-git-send-email-huiyiqun@gmail.com> Hui Yiqun writes: > According to strbuf.h, strbuf_detach is the sole supported method > to unwrap a memory buffer from its strbuf shell. > ... > diff --git a/path.c b/path.c > index 969b494..9801617 100644 > --- a/path.c > +++ b/path.c > @@ -625,6 +625,7 @@ const char *enter_repo(const char *path, int strict) > { > static struct strbuf validated_path = STRBUF_INIT; > static struct strbuf used_path = STRBUF_INIT; > ... > +return_null: > + free(dbuf); > + strbuf_release(&used_path); > + strbuf_release(&validated_path); > return NULL; > } I see these strbuf's are "static" storage class, so that they do not have to get freed.