Re: bugreport - SEGFAULT on 'git show-branch --current --reflog=3'
- From
Gregory David <gregory.david@p1sec.com>
- Date
- Apr 14, 2022, 07:20 UTC
- Message-ID
- <d72ac546-7c0d-6b05-5b8b-0c4b96192135@p1sec.com>
- In-Reply-To
- <220413.86wnfses7c.gmgdl@evledraar.gmail.com>
By my side, your first suggestion didn't remove the segfault due to the irrelevant check on 'reflog[i]' that is not use on next line, so unable to segfault. The fact is you pointed the exact place where it happens and my fix of your fix :) remove the segfault.
On 13/04/2022 18:46, Ævar Arnfjörð Bjarmason wrote:
Show 29 quoted lines
>
> On Wed, Apr 13 2022, Gregory David wrote:
>
>> [[PGP Signed Part:Undecided]]
>> Thanks a lot Aevar!
>>
>> Don't you mean this:
>>
>> diff --git a/builtin/show-branch.c b/builtin/show-branch.c
>> index 330b0553b9..2a5c31729d 100644
>> --- a/builtin/show-branch.c
>> +++ b/builtin/show-branch.c
>> @@ -881,7 +881,7 @@ int cmd_show_branch(int ac, const char **av, const
>> char *prefix)
>> get_color_reset_code(), ref_name[i]);
>> }
>>
>> - if (!reflog) {
>> + if (!reflog || !rev[i]) {
>> /* header lines never need name */
>> show_one_commit(rev[i], 1);
>
> No, but my "suggested" fix was just enough to compile and get past the
> segfault, i.e. we don't reach the puts(reflog_msg[i]) branch, but of
> course rev[i] may be NULL too, I didn't check.
>
> For this one though: I haven't tried it, but reading show_one_commit()
> one of the first things we do is dereference the 1st argument, so surely
> that will segfault too...-- Gregory David Security Engineer https://www.p1sec.com