All of lore.kernel.org
 help / color / mirror / Atom feed
From: Patrick Steinhardt <ps@pks.im>
To: "René Scharfe" <l.s.r@web.de>
Cc: Git List <git@vger.kernel.org>, Junio C Hamano <gitster@pobox.com>
Subject: Re: [PATCH v2 3/4] reftable: handle realloc error in parse_names()
Date: Mon, 30 Dec 2024 08:25:10 +0100	[thread overview]
Message-ID: <Z3JK1rBxcuMoiUmK@pks.im> (raw)
In-Reply-To: <c2cd277b-ba9d-41cb-b9bd-c519b445d179@web.de>

On Sat, Dec 28, 2024 at 10:48:50AM +0100, René Scharfe wrote:
> Check the final reallocation for adding the terminating NULL and handle
> it just like those in the loop.  Simply use REFTABLE_ALLOC_GROW instead
> of keeping the REFTABLE_REALLOC_ARRAY call and adding code to preserve
> the original pointer value around it.
> 
> Signed-off-by: René Scharfe <l.s.r@web.de>
> ---
>  reftable/basics.c | 3 ++-
>  1 file changed, 2 insertions(+), 1 deletion(-)
> 
> diff --git a/reftable/basics.c b/reftable/basics.c
> index cd6b39dbe9..fe2b83ff83 100644
> --- a/reftable/basics.c
> +++ b/reftable/basics.c
> @@ -241,7 +241,8 @@ char **parse_names(char *buf, int size)
>  		p = next + 1;
>  	}
> 
> -	REFTABLE_REALLOC_ARRAY(names, names_len + 1);
> +	if (REFTABLE_ALLOC_GROW(names, names_len + 1, names_cap))
> +		goto err;
>  	names[names_len] = NULL;

Okay. We may be overallocating in some cases now, but it's most likely
that we can completely skip this allocation here because `names_cap` is
big enough already.

Patrick

  reply	other threads:[~2024-12-30  7:25 UTC|newest]

Thread overview: 25+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-12-25 18:33 [PATCH 0/4] reftable: fix realloc error handling René Scharfe
2024-12-25 18:38 ` [PATCH 1/4] reftable: avoid leaks on realloc error René Scharfe
2024-12-27  5:39   ` Junio C Hamano
2024-12-27 10:33   ` Patrick Steinhardt
2024-12-27 20:16     ` René Scharfe
2024-12-30  6:29       ` Patrick Steinhardt
2024-12-25 18:38 ` [PATCH 2/4] reftable: fix allocation count " René Scharfe
2024-12-27 10:33   ` Patrick Steinhardt
2024-12-27 20:16     ` René Scharfe
2024-12-27 20:16   ` René Scharfe
2024-12-25 18:38 ` [PATCH 3/4] reftable: handle realloc error in parse_names() René Scharfe
2024-12-25 18:38 ` [PATCH 4/4] t-reftable-merged: check realloc errors René Scharfe
2024-12-27  5:46   ` Junio C Hamano
2024-12-27 10:34     ` Patrick Steinhardt
2024-12-27 20:16       ` René Scharfe
2024-12-27 10:34 ` [PATCH 0/4] reftable: fix realloc error handling Patrick Steinhardt
2024-12-27 16:02   ` Junio C Hamano
2024-12-28  9:43 ` [PATCH v2 " René Scharfe
2024-12-28  9:47   ` [PATCH v2 1/4] reftable: avoid leaks on realloc error René Scharfe
2024-12-30  7:25     ` Patrick Steinhardt
2024-12-28  9:48   ` [PATCH v2 2/4] reftable: fix allocation count " René Scharfe
2024-12-28  9:48   ` [PATCH v2 3/4] reftable: handle realloc error in parse_names() René Scharfe
2024-12-30  7:25     ` Patrick Steinhardt [this message]
2024-12-28  9:49   ` [PATCH v2 4/4] t-reftable-merged: handle realloc errors René Scharfe
2024-12-30  7:25   ` [PATCH v2 0/4] reftable: fix realloc error handling Patrick Steinhardt

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=Z3JK1rBxcuMoiUmK@pks.im \
    --to=ps@pks.im \
    --cc=git@vger.kernel.org \
    --cc=gitster@pobox.com \
    --cc=l.s.r@web.de \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.