threads / discuss / 49503

Diff Range Underflow

Subject: Diff Range Underflow

## tl;dr

2 messages between Oct 7, 2018 and Oct 12, 2018.

replies: 1people: 2as markdown or json

Era· Oct 7, 2018, 13:47 UTC · lore

I discovered an apparent underflow when using the —unified=0 / -U0 flag with git-show on a merge commit. Leaving the flag on its default value or 1 shows the ranges correctly.

	$git --no-pager show -z --no-color --pretty=%x00%s%x00%b%x00 -U1 3ac9cfed9ce01836dea1fee96c4eceb2df4b6878
produces a diff with the following ranges
	@@@ -582,2 -599,19 +582,1 @@@ extension TranslationContentViewControl
changing the flag to -U0 like so
	git --no-pager show -z --no-color --pretty=%x00%s%x00%b%x00 -U0 3ac9cfed9ce01836dea1fee96c4eceb2df4b6878
results in the following ranges begin output
	@@@ -583,0 -600,17 +583,18446744073709551615 @@@ extension TranslationContentViewControl

Obviously this is some sort of underflow bug. Unfortunately I cant share the original repo or diff.

Best regards, Erik

Johannes Schindelin· Oct 12, 2018, 08:10 UTC · re: Era · lore

Re: Diff Range Underflow

Hi Era,
On Sun, 7 Oct 2018, Era wrote:
Show 20 quoted lines
> I discovered an apparent underflow when using the —unified=0 / -U0 flag with git-show on a merge commit.
> Leaving the flag on its default value or 1 shows the ranges correctly.
> 
> 	$git --no-pager show -z --no-color --pretty=%x00%s%x00%b%x00 -U1 3ac9cfed9ce01836dea1fee96c4eceb2df4b6878
> 
> produces a diff with the following ranges
> 
> 	@@@ -582,2 -599,19 +582,1 @@@ extension TranslationContentViewControl
> 
> changing the flag to -U0 like so
> 
> 	git --no-pager show -z --no-color --pretty=%x00%s%x00%b%x00 -U0 3ac9cfed9ce01836dea1fee96c4eceb2df4b6878
> 
> results in the following ranges begin output
> 
> 	@@@ -583,0 -600,17 +583,18446744073709551615 @@@ extension TranslationContentViewControl
> 
> 
> Obviously this is some sort of underflow bug.
> Unfortunately I cant share the original repo or diff.

Happily, you can work on reproducing this with a public repository, or even better: with two crafted files that can be compared via `git diff --no-index ...` to trigger the bug, starting with the blob contents you cannot share and editing them down to the minimal size, changing the contents to no longer contain any sensitive information. Please do so.

Ciao, Johannes

Show 11 quoted lines
> 
> 
> Best regards,
> Erik
> 
> 
> 
> 
> 
> 
> 

← back to recent threads