From: Phillip Wood Date: Mon, 15 Dec 2025 10:10:27 GMT Subject: Re: [PATCH] replay: move onto NULL check before first use Message-ID: In-Reply-To: <9db2b913-b5d6-4617-b079-b4612eaa2b97@web.de> On 11/12/2025 17:56, René Scharfe wrote: > 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 > Reported-by: Kristoffer Haugsbakk > Signed-off-by: René Scharfe > --- > 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;