Re: [PATCH v3] path.c enter_repo(): fix unproper strbuf unwrapping and memory leakage
- From
Junio C Hamano <gitster@pobox.com>
- Date
- Mar 28, 2016, 17:58 UTC
- Message-ID
- <xmqqwpomxz4v.fsf@gitster.mtv.corp.google.com>
- In-Reply-To
- <1459180638-6034-1-git-send-email-huiyiqun@gmail.com>
Hui Yiqun <huiyiqun@gmail.com> writes:
Show 18 quoted lines
> 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.