Hi,
I encountered a strange bug concerning the reflog.
I suspect some kind of out-of-bounds access.
The symptom is:
%git rev-parse 'master@{52}'
warning: Log for ref refs/heads/master has gap after Thu, 1 Jan 1970
00:00:01 +0000.
0000000000000000000000000000000000000036
Try the following:
git init gitbug
cd gitbug
git commit --allow-empty -m a
cp ../reflog.bad .git/logs/refs/heads/master
git rev-parse 'master@{52}'
The source of cp is the attached file.
This is from a reflog of stash.
I just replaced all stuff by dummy values.
This does not seem to affect the bug.
Sorry, it must be this long.
Some observations:
* If you change the length of any line starting at line 3, the symptom
vanishes.
(The XXXXX at the line ends are free-form text.)
* Starting at line three, there are 0x2BFF bytes till the end of file.
Is there some dynamically growing buffer, which at some point reaches
the size 0x2C00?
* Changing the length of the first two lines has no effect.
Is the file read backwards?
* It happens at least with git 2.1.2 (amd64) and 2.2.0 (ia32).
* 2.0.2 (amd64) and 2.1.0 (amd64) seem not to have this bug.
Any ideas?
Christoph
0000000000000000000000000000000000000037
0000000000000000000000000000000000000036 xxxxxxxxxxxxxxxx
<xxx@xxxxxxxxxxxxxxxxxxx> 0000000001 +0000 X
0000000000000000000000000000000000000036
0000000000000000000000000000000000000035 xxxxxxxxxxxxxxxx
<xxx@xxxxxxxxxxxxxxxxxxx> 0000000001 +0000 X
0000000000000000000000000000000000000035
0000000000000000000000000000000000000034 xxxxxxxxxxxxxxxx
<xxx@xxxxxxxxxxxxxxxxxxx> 0000000001 +0000
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
0000000000000000000000000000000000000034
0000000000000000000000000000000000000033 xxxxxxxxxxxxxxxx
<xxx@xxxxxxxxxxxxxxxxxxx> 0000000001 +0000 XXXXXXXXXXXXXXX
0000000000000000000000000000000000000033
0000000000000000000000000000000000000032 xxxxxxxxxxxxxxxx
<xxx@xxxxxxxxxxxxxxxxxxx> 0000000001 +0000
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
0000000000000000000000000000000000000032
0000000000000000000000000000000000000031 xxxxxxxxxxxxxxxx
<xxx@xxxxxxxxxxxxxxxxxxx> 0000000001 +0000
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
0000000000000000000000000000000000000031
0000000000000000000000000000000000000030 xxxxxxxxxxxxxxxx
<xxx@xxxxxxxxxxxxxxxxxxxxx> 0000000001 +0000
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
0000000000000000000000000000000000000030
000000000000000000000000000000000000002f xxxxxxxxxxxxxxxx
<xxx@xxxxxxxxxxxxxxxxxxxxx> 0000000001 +0000
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
000000000000000000000000000000000000002f
000000000000000000000000000000000000002e xxxxxxxxxxxxxxxx
<xxx@xxxxxxxxxxxxxxxxxxxxx> 0000000001 +0000
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
000000000000000000000000000000000000002e
000000000000000000000000000000000000002d xxxxxxxxxxxxxxxx
<xxx@xxxxxxxxxxxxxxxxxxxxx> 0000000001 +0000
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
000000000000000000000000000000000000002d
000000000000000000000000000000000000002c xxxxxxxxxxxxxxxx
<xxx@xxxxxxxxxxxxxxxxxxxxx> 0000000001 +0000
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
000000000000000000000000000000000000002c
000000000000000000000000000000000000002b xxxxxxxxxxxxxxxx
<xxx@xxxxxxxxxxxxxxxxxxxxx> 0000000001 +0000
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
000000000000000000000000000000000000002b
000000000000000000000000000000000000002a xxxxxxxxxxxxxxxx
<xxx@xxxxxxxxxxxxxxxxxxxxx> 0000000001 +0000
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
000000000000000000000000000000000000002a
0000000000000000000000000000000000000029 xxxxxxxxxxxxxxxx
<xxx@xxxxxxxxxxxxxxxxxxxxx> 0000000001 +0000
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
0000000000000000000000000000000000000029
0000000000000000000000000000000000000028 xxxxxxxxxxxxxxxx
<xxx@xxxxxxxxxxxxxxxxxxxxx> 0000000001 +0000
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
0000000000000000000000000000000000000028
0000000000000000000000000000000000000027 xxxxxxxxxxxxxxxx
<xxx@xxxxxxxxxxxxxxxxxxxxx> 0000000001 +0000
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
0000000000000000000000000000000000000027
0000000000000000000000000000000000000026 xxxxxxxxxxxxxxxx
<xxx@xxxxxxxxxxxxxxxxxxxxx> 0000000001 +0000
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
0000000000000000000000000000000000000026
0000000000000000000000000000000000000025 xxxxxxxxxxxxxxxx
<xxx@xxxxxxxxxxxxxxxxxxxxx> 0000000001 +0000
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
0000000000000000000000000000000000000025
0000000000000000000000000000000000000024 xxxxxxxxxxxxxxxx
<xxx@xxxxxxxxxxxxxxxxxxxxx> 0000000001 +0000
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
0000000000000000000000000000000000000024
0000000000000000000000000000000000000023 xxxxxxxxxxxxxxxx
<xxx@xxxxxxxxxxxxxxxxxxxxx> 0000000001 +0000
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
0000000000000000000000000000000000000023
0000000000000000000000000000000000000022 xxxxxxxxxxxxxxxx
<xxx@xxxxxxxxxxxxxxxxxxxxx> 0000000001 +0000
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
0000000000000000000000000000000000000022
0000000000000000000000000000000000000021 xxxxxxxxxxxxxxxx
<xxx@xxxxxxxxxxxxxxxxxxxxx> 0000000001 +0000
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
0000000000000000000000000000000000000021
0000000000000000000000000000000000000020 xxxxxxxxxxxxxxxx
<xxx@xxxxxxxxxxxxxxxxxxxxx> 0000000001 +0000
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
0000000000000000000000000000000000000020
000000000000000000000000000000000000001f xxxxxxxxxxxxxxxx
<xxx@xxxxxxxxxxxxxxxxxxxxx> 0000000001 +0000
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
000000000000000000000000000000000000001f
000000000000000000000000000000000000001e xxxxxxxxxxxxxxxx
<xxx@xxxxxxxxxxxxxxxxxxxxx> 0000000001 +0000
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
000000000000000000000000000000000000001e
000000000000000000000000000000000000001d xxxxxxxxxxxxxxxx
<xxx@xxxxxxxxxxxxxxxxxxxxx> 0000000001 +0000
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
000000000000000000000000000000000000001d
000000000000000000000000000000000000001c xxxxxxxxxxxxxxxx
<xxx@xxxxxxxxxxxxxxxxxxxxx> 0000000001 +0000
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
000000000000000000000000000000000000001c
000000000000000000000000000000000000001b xxxxxxxxxxxxxxxx
<xxx@xxxxxxxxxxxxxxxxxxxxx> 0000000001 +0000
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
000000000000000000000000000000000000001b
000000000000000000000000000000000000001a xxxxxxxxxxxxxxxx
<xxx@xxxxxxxxxxxxxxxxxxxxx> 0000000001 +0000
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
000000000000000000000000000000000000001a
0000000000000000000000000000000000000019 xxxxxxxxxxxxxxxx
<xxx@xxxxxxxxxxxxxxxxxxxxx> 0000000001 +0000
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
0000000000000000000000000000000000000019
0000000000000000000000000000000000000018 xxxxxxxxxxxxxxxx
<xxx@xxxxxxxxxxxxxxxxxxxxx> 0000000001 +0000
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
0000000000000000000000000000000000000018
0000000000000000000000000000000000000017 xxxxxxxxxxxxxxxx
<xxx@xxxxxxxxxxxxxxxxxxxxx> 0000000001 +0000
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
0000000000000000000000000000000000000017
0000000000000000000000000000000000000016 xxxxxxxxxxxxxxxx
<xxx@xxxxxxxxxxxxxxxxxxxxx> 0000000001 +0000
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
0000000000000000000000000000000000000016
0000000000000000000000000000000000000015 xxxxxxxxxxxxxxxx
<xxx@xxxxxxxxxxxxxxxxxxxxx> 0000000001 +0000
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
0000000000000000000000000000000000000015
0000000000000000000000000000000000000014 xxxxxxxxxxxxxxxx
<xxx@xxxxxxxxxxxxxxxxxxxxx> 0000000001 +0000
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
0000000000000000000000000000000000000014
0000000000000000000000000000000000000013 xxxxxxxxxxxxxxxx
<xxx@xxxxxxxxxxxxxxxxxxxxx> 0000000001 +0000
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
0000000000000000000000000000000000000013
0000000000000000000000000000000000000012 xxxxxxxxxxxxxxxx
<xxx@xxxxxxxxxxxxxxxxxxxxx> 0000000001 +0000
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
0000000000000000000000000000000000000012
0000000000000000000000000000000000000011 xxxxxxxxxxxxxxxx
<xxx@xxxxxxxxxxxxxxxxxxxxx> 0000000001 +0000
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
0000000000000000000000000000000000000011
0000000000000000000000000000000000000010 xxxxxxxxxxxxxxxx
<xxx@xxxxxxxxxxxxxxxxxxxxx> 0000000001 +0000
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
0000000000000000000000000000000000000010
000000000000000000000000000000000000000f xxxxxxxxxxxxxxxx
<xxx@xxxxxxxxxxxxxxxxxxxxx> 0000000001 +0000
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
000000000000000000000000000000000000000f
000000000000000000000000000000000000000e xxxxxxxxxxxxxxxx
<xxx@xxxxxxxxxxxxxxxxxxxxx> 0000000001 +0000
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
000000000000000000000000000000000000000e
000000000000000000000000000000000000000d xxxxxxxxxxxxxxxx
<xxx@xxxxxxxxxxxxxxxxxxxxx> 0000000001 +0000
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
000000000000000000000000000000000000000d
000000000000000000000000000000000000000c xxxxxxxxxxxxxxxx
<xxx@xxxxxxxxxxxxxxxxxxxxx> 0000000001 +0000
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
000000000000000000000000000000000000000c
000000000000000000000000000000000000000b xxxxxxxxxxxxxxxx
<xxx@xxxxxxxxxxxxxxxxxxxxx> 0000000001 +0000
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
000000000000000000000000000000000000000b
000000000000000000000000000000000000000a xxxxxxxxxxxxxxxx
<xxx@xxxxxxxxxxxxxxxxxxxxx> 0000000001 +0000
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
000000000000000000000000000000000000000a
0000000000000000000000000000000000000009 xxxxxxxxxxxxxxxx
<xxx@xxxxxxxxxxxxxxxxxxxxx> 0000000001 +0000
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
0000000000000000000000000000000000000009
0000000000000000000000000000000000000008 xxxxxxxxxxxxxxxx
<xxx@xxxxxxxxxxxxxxxxxxxxx> 0000000001 +0000
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
0000000000000000000000000000000000000008
0000000000000000000000000000000000000007 xxxxxxxxxxxxxxxx
<xxx@xxxxxxxxxxxxxxxxxxxxx> 0000000001 +0000
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
0000000000000000000000000000000000000007
0000000000000000000000000000000000000006 xxxxxxxxxxxxxxxx
<xxx@xxxxxxxxxxxxxxxxxxxxx> 0000000001 +0000
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
0000000000000000000000000000000000000006
0000000000000000000000000000000000000005 xxxxxxxxxxxxxxxx
<xxx@xxxxxxxxxxxxxxxxxxxxx> 0000000001 +0000
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
0000000000000000000000000000000000000005
0000000000000000000000000000000000000004 xxxxxxxxxxxxxxxx
<xxx@xxxxxxxxxxxxxxxxxxxxx> 0000000001 +0000
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
0000000000000000000000000000000000000004
0000000000000000000000000000000000000003 xxxxxxxxxxxxxxxx
<xxx@xxxxxxxxxxxxxxxxxxxxx> 0000000001 +0000
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
0000000000000000000000000000000000000003
0000000000000000000000000000000000000002 xxxxxxxxxxxxxxxx
<xxx@xxxxxxxxxxxxxxxxxxxxx> 0000000001 +0000
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
0000000000000000000000000000000000000002
0000000000000000000000000000000000000001 xxxxxxxxxxxxxxxx
<xxx@xxxxxxxxxxxxxxxxxxxxx> 0000000001 +0000
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX