git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: bugreport - SEGFAULT on 'git show-branch --current --reflog=3'

From
Gregory David <gregory.david@p1sec.com>
Date
Apr 13, 2022, 15:48 UTC
Message-ID
<6d510d78-9b0b-c463-889b-cd3855ccdd1b@p1sec.com>
In-Reply-To
<220413.864k2xgk51.gmgdl@evledraar.gmail.com>
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);
                        }

Best regards.

On 13/04/2022 13:57, Ævar Arnfjörð Bjarmason wrote:
> 
> On Wed, Apr 13 2022, Gregory David wrote:
> 
>> [[PGP Signed Part:Undecided]]
>> Hi, this bugreport is about a SEGFAULT on git binary when running in
>> this repository (for example, as it also segfault on other private
>> repositories): https://framagit.org/groolot-association/osc_looper.git
>>
>>
>> What did you do before the bug happened? (Steps to reproduce your
>> issue) I just wanted to list branches, and so playing with 'git
>> show-branch --current --reflog=3' in the repository
>> https://framagit.org/groolot-association/osc_looper.git
>>
>> What did you expect to happen? (Expected behavior)
>> Not to segfault
>>
>> What happened instead? (Actual behavior)
>> This command fails with a SEGFAULT on version 2.35.1, 2.20.1 and 2.17.1
>> It also SEGFAULT on branch 'next' of github git repository.
>>
>> What's different between what you expected and what actually happened?
>> Segfault
>>
>> Anything else you want to add:
>> Segfaut happened when '--current' AND '--reflog=3' are provided together
>>
>> Please review the rest of the bug report below.
>> You can delete any lines you don't wish to share.
>>
>>
>> [System Info]
>> git version:
>> git version 2.35.1
>> cpu: x86_64
>> no commit associated with this build
>> sizeof-long: 8
>> sizeof-size_t: 8
>> shell-path: /bin/sh
>> uname: Linux 5.16.0-4-amd64 #1 SMP PREEMPT Debian 5.16.12-1 (2022-03-08)
>> x86_64
>> compiler info: gnuc: 11.2
>> libc info: glibc: 2.33
>> $SHELL (typically, interactive shell): /usr/bin/zsh
> 
> This appears to fix it, but I didn't have time to further validate it,
> come up with a test etc:
> 
> diff --git a/builtin/show-branch.c b/builtin/show-branch.c
> index 330b0553b9d..be3890b2dd6 100644
> --- a/builtin/show-branch.c
> +++ b/builtin/show-branch.c
> @@ -881,10 +881,9 @@ int cmd_show_branch(int ac, const char **av, const char *prefix)
>  				       get_color_reset_code(), ref_name[i]);
>  			}
>  
> -			if (!reflog) {
> +			if (!reflog || !reflog_msg[i])
>  				/* header lines never need name */
>  				show_one_commit(rev[i], 1);
> -			}
>  			else
>  				puts(reflog_msg[i]);
>  
> 
-- 
Gregory David
Security Engineer
https://www.p1sec.com
Previous: Ævar Arnfjörð BjarmasonNext: Ævar Arnfjörð Bjarmason
Message 3 of 6 in “bugreport - SEGFAULT on 'git show-branch --current --reflog=3'”
  1. Gregory DavidApr 13, 2022
  2. Ævar Arnfjörð BjarmasonApr 13, 2022
  3. Gregory DavidApr 13, 2022
  4. Ævar Arnfjörð BjarmasonApr 13, 2022
  5. Gregory DavidApr 14, 2022
  6. Gregory DavidApr 14, 2022

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.