All of lore.kernel.org
 help / color / mirror / Atom feed
From: Junio C Hamano <gitster@pobox.com>
To: Toon Claes <toon@iotcl.com>
Cc: git@vger.kernel.org,  Patrick Steinhardt <ps@pks.im>,
	 Kristoffer Haugsbakk <kristofferhaugsbakk@fastmail.com>
Subject: Re: [PATCH v4 2/4] last-modified: fix memory leak when more than one revision is given
Date: Fri, 23 Jan 2026 09:04:02 -0800	[thread overview]
Message-ID: <xmqqldhoi7lp.fsf@gitster.g> (raw)
In-Reply-To: <20260123-toon-last-modified-tree-v4-2-86bf97bad4e2@iotcl.com> (Toon Claes's message of "Fri, 23 Jan 2026 15:33:02 +0100")

Toon Claes <toon@iotcl.com> writes:

> When more than one revision is given, the function
> populate_paths_from_revs() leaks a `struct pathspec`. Plug it.

Makes sense.

>
> Signed-off-by: Toon Claes <toon@iotcl.com>
> ---
>  builtin/last-modified.c | 12 ++++++++----
>  1 file changed, 8 insertions(+), 4 deletions(-)
>
> diff --git a/builtin/last-modified.c b/builtin/last-modified.c
> index 7d95244e3f..06e3f79aec 100644
> --- a/builtin/last-modified.c
> +++ b/builtin/last-modified.c
> @@ -123,7 +123,7 @@ static void add_path_from_diff(struct diff_queue_struct *q,
>  
>  static int populate_paths_from_revs(struct last_modified *lm)
>  {
> -	int num_interesting = 0;
> +	int num_interesting = 0, ret = 0;
>  	struct diff_options diffopt;
>  
>  	/*
> @@ -145,16 +145,20 @@ static int populate_paths_from_revs(struct last_modified *lm)
>  		if (obj->item->flags & UNINTERESTING)
>  			continue;
>  
> -		if (num_interesting++)
> -			return error(_("last-modified can only operate on one revision at a time"));
> +		if (num_interesting++) {
> +			ret = error(_("last-modified can only operate on one revision at a time"));
> +			goto out;
> +		}
>  
>  		diff_tree_oid(lm->rev.repo->hash_algo->empty_tree,
>  			      &obj->item->oid, "", &diffopt);
>  		diff_flush(&diffopt);
>  	}
> +
> +out:
>  	clear_pathspec(&diffopt.pathspec);
>  
> -	return 0;
> +	return ret;
>  }
>  
>  static void last_modified_emit(struct last_modified *lm,

  reply	other threads:[~2026-01-23 17:04 UTC|newest]

Thread overview: 55+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-01-12 16:17 [PATCH] last-modified: verify revision argument is a commit-ish Toon Claes
2026-01-12 20:23 ` Junio C Hamano
2026-01-13  6:54 ` Patrick Steinhardt
2026-01-14 10:24 ` [PATCH v2 0/3] Fix git-last-modified(1) bug triggered when passing a tree-ish Toon Claes
2026-01-14 10:24   ` [PATCH v2 1/3] last-modified: rewrite error message when more than one revision given Toon Claes
2026-01-14 10:56     ` Patrick Steinhardt
2026-01-15 11:33       ` Toon Claes
2026-01-15 11:54         ` Patrick Steinhardt
2026-01-15 14:34           ` Kristoffer Haugsbakk
2026-01-16  7:09             ` Patrick Steinhardt
2026-01-16 12:30               ` Toon Claes
2026-01-16 17:16               ` Junio C Hamano
2026-01-19  6:57                 ` Patrick Steinhardt
2026-01-25 11:26               ` Kristoffer Haugsbakk
2026-01-15 14:34         ` Kristoffer Haugsbakk
2026-01-14 10:24   ` [PATCH v2 2/3] last-modified: remove double error message Toon Claes
2026-01-14 10:56     ` Patrick Steinhardt
2026-01-14 10:24   ` [PATCH v2 3/3] last-modified: verify revision argument is a commit-ish Toon Claes
2026-01-14 10:56     ` Patrick Steinhardt
2026-01-15 16:02     ` Kristoffer Haugsbakk
2026-01-15 16:35       ` Junio C Hamano
2026-01-16 13:11       ` Toon Claes
2026-01-16 13:08   ` [PATCH v3 0/4] Fix git-last-modified(1) bug triggered when passing a tree-ish Toon Claes
2026-01-16 13:08     ` [PATCH v3 1/4] last-modified: rewrite error message when more than one revision given Toon Claes
2026-01-16 17:31       ` Junio C Hamano
2026-01-16 13:08     ` [PATCH v3 2/4] last-modified: fix memory leak when more than one revision is given Toon Claes
2026-01-16 13:08     ` [PATCH v3 3/4] last-modified: remove double error message Toon Claes
2026-01-16 18:22       ` Junio C Hamano
2026-01-16 13:08     ` [PATCH v3 4/4] last-modified: verify revision argument is a commit-ish Toon Claes
2026-01-16 18:24       ` Junio C Hamano
2026-01-23 14:33     ` [PATCH v4 0/4] Fix git-last-modified(1) bug triggered when passing a tree-ish Toon Claes
2026-01-23 14:33       ` [PATCH v4 1/4] last-modified: rewrite error message when more than one revision given Toon Claes
2026-01-23 17:01         ` Junio C Hamano
2026-01-23 14:33       ` [PATCH v4 2/4] last-modified: fix memory leak when more than one revision is given Toon Claes
2026-01-23 17:04         ` Junio C Hamano [this message]
2026-01-23 14:33       ` [PATCH v4 3/4] last-modified: remove double error message Toon Claes
2026-01-23 17:07         ` Junio C Hamano
2026-01-23 14:33       ` [PATCH v4 4/4] last-modified: verify revision argument is a commit-ish Toon Claes
2026-01-23 17:12         ` Junio C Hamano
2026-01-23 17:31         ` Junio C Hamano
2026-01-27 13:26       ` [PATCH v5 0/4] Fix git-last-modified(1) bug triggered when passing a tree-ish Toon Claes
2026-01-27 13:26         ` [PATCH v5 1/4] last-modified: rewrite error message when more than one commit given Toon Claes
2026-01-27 13:26         ` [PATCH v5 2/4] last-modified: fix memory leak when more than one commit is given Toon Claes
2026-01-27 13:26         ` [PATCH v5 3/4] last-modified: remove double error message Toon Claes
2026-01-27 13:26         ` [PATCH v5 4/4] last-modified: verify revision argument is a commit-ish Toon Claes
2026-01-27 22:34         ` [PATCH v5 0/4] Fix git-last-modified(1) bug triggered when passing a tree-ish Junio C Hamano
2026-01-29 14:59           ` Toon Claes
2026-01-30 14:26         ` [PATCH v6 " Toon Claes
2026-01-30 14:26           ` [PATCH v6 1/4] last-modified: rewrite error message when more than one commit given Toon Claes
2026-01-30 14:26           ` [PATCH v6 2/4] last-modified: fix memory leak when more than one commit is given Toon Claes
2026-01-30 14:26           ` [PATCH v6 3/4] last-modified: remove double error message Toon Claes
2026-01-30 14:26           ` [PATCH v6 4/4] last-modified: verify revision argument is a commit-ish Toon Claes
2026-02-06 15:55             ` Patrick Steinhardt
2026-01-30 17:07           ` [PATCH v6 0/4] Fix git-last-modified(1) bug triggered when passing a tree-ish Junio C Hamano
2026-02-06 15:55             ` 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=xmqqldhoi7lp.fsf@gitster.g \
    --to=gitster@pobox.com \
    --cc=git@vger.kernel.org \
    --cc=kristofferhaugsbakk@fastmail.com \
    --cc=ps@pks.im \
    --cc=toon@iotcl.com \
    /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.