Re: [PATCH] replay: move onto NULL check before first use
- From
- Phillip Wood <phillip.wood123@gmail.com>
- Date
- Dec 15, 2025, 10:10 UTC
- Message-ID
- <a017e50f-7c8f-461f-8627-2fd1445d29f6@gmail.com>
- In-Reply-To
- <9db2b913-b5d6-4617-b079-b4612eaa2b97@web.de>
On 11/12/2025 17:56, René Scharfe wrote:
Show 5 quoted lines
> cmd_replay() aborts if the pointer "onto" is NULL after argument > parsing, e.g. when specifying a non-existing commit with --onto. > 15cd4ef1f4 (replay: make atomic ref updates the default behavior, > 2025-11-06) added code that dereferences this pointer before the check. > Switch their places to avoid a segmentation fault.
This fixes the regression nicely. There is a preexisting bug that we treat an invalid --onto argument the same as a missing argument but that can be fixed separately.
Thanks
Phillip
Show 30 quoted lines
> Reported-by: Kristoffer Haugsbakk <kristofferhaugsbakk@fastmail.com>
> Signed-off-by: René Scharfe <l.s.r@web.de>
> ---
> builtin/replay.c | 6 +++---
> 1 file changed, 3 insertions(+), 3 deletions(-)
>
> diff --git a/builtin/replay.c b/builtin/replay.c
> index 507b909df7..64ad2f0f04 100644
> --- a/builtin/replay.c
> +++ b/builtin/replay.c
> @@ -454,6 +454,9 @@ int cmd_replay(int argc,
> determine_replay_mode(repo, &revs.cmdline, onto_name, &advance_name,
> &onto, &update_refs);
>
> + if (!onto) /* FIXME: Should handle replaying down to root commit */
> + die("Replaying down to root commit is not supported yet!");
> +
> /* Build reflog message */
> if (advance_name_opt)
> strbuf_addf(&reflog_msg, "replay --advance %s", advance_name_opt);
> @@ -472,9 +475,6 @@ int cmd_replay(int argc,
> }
> }
>
> - if (!onto) /* FIXME: Should handle replaying down to root commit */
> - die("Replaying down to root commit is not supported yet!");
> -
> if (prepare_revision_walk(&revs) < 0) {
> ret = error(_("error preparing revisions"));
> goto cleanup;