Assertion `loc.end.file' failed in bison

Youngseok Choi <[email protected]> Tue, 4 Apr 2023 12:46:42 +0900
Newsgroups gmane.comp.parsers.bison.bugs
Message-ID <CADWrUHd7ySfdx_V_bzLH0adwc3OBXU2SNxdqiHPmzHFWp-Vocg@mail.gmail.com>
--000000000000bee06605f87a86d9
Content-Type: text/plain; charset="UTF-8"

Hello, our fuzzer found a new assertion bug in bison. (Assertion
`loc.end.file' failed)

*Command*
bison -Tp poc_file
(poc_file is attached)

*Output (stderr)*
*...*
Reading a token
/home/youngseok/data/230327/asan_inter_30_30_shrink5_1_230308/bison/5_id:000199/poc_file:12.24:
error: an identifier expected
   12 | %cid main (String args[]) throw IOlt-Exception
      |                        ^
Error: popping token error
(/home/youngseok/data/230327/asan_inter_30_30_shrink5_1_230308/bison/5_id:000199/poc_file:10.1-12.17:
)
Stack now 0 2
Shifting token error
(/home/youngseok/data/230327/asan_inter_30_30_shrink5_1_230308/bison/5_id:000199/poc_file:10.1-12.24:
)
Entering state 4
Stack now 0 2 4
Next token is token invalid token
(/home/youngseok/data/230327/asan_inter_30_30_shrink5_1_230308/bison/5_id:000199/poc_file:12.24:
)
LAC: initial context established for invalid token
LAC: checking lookahead invalid token: Always Err
Error: discarding token invalid token
(/home/youngseok/data/230327/asan_inter_30_30_shrink5_1_230308/bison/5_id:000199/poc_file:12.24:
)
Error: popping token error
(/home/youngseok/data/230327/asan_inter_30_30_shrink5_1_230308/bison/5_id:000199/poc_file:10.1-12.24:
)
Stack now 0 2
LAC: initial context discarded due to error recovery
Shifting token error
(/home/youngseok/data/230327/asan_inter_30_30_shrink5_1_230308/bison/5_id:000199/poc_file:10.1-12.24:
)
Entering state 4
Stack now 0 2 4
Reading a token
Next token is token identifier ((empty location): args)
LAC: initial context established for identifier
LAC: checking lookahead identifier: Err
Error: discarding token identifier ((empty location): args)
Error: popping token error
(/home/youngseok/data/230327/asan_inter_30_30_shrink5_1_230308/bison/5_id:000199/poc_file:10.1-12.24:
)
Stack now 0 2
LAC: initial context discarded due to error recovery
Shifting token error (bison: src/location.c:169: location_print: Assertion
`loc.end.file' failed.
Aborted

*Stack Trace (gdb)*
#0  __GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:51
#1  0x00007ffff6a677f1 in __GI_abort () at abort.c:79
#2  0x00007ffff6a573fa in __assert_fail_base (fmt=0x7ffff6bde6c0
"%s%s%s:%u: %s%sAssertion `%s' failed.\n%n",
    assertion=assertion@entry=0x5555556d4f00 "loc.end.file",
file=file@entry=0x5555556d4e80
"src/location.c", line=line@entry=169,
    function=function@entry=0x5555556d52a0 <__PRETTY_FUNCTION__.6202>
"location_print") at assert.c:92
#3  0x00007ffff6a57472 in __GI___assert_fail (assertion=0x5555556d4f00
"loc.end.file", file=0x5555556d4e80 "src/location.c", line=169,
    function=0x5555556d52a0 <__PRETTY_FUNCTION__.6202> "location_print") at
assert.c:101
#4  0x00005555555c9cab in location_print (loc=..., out=0x7ffff6e13680
<_IO_2_1_stderr_>) at src/location.c:169
#5  0x00005555555fac2a in yy_symbol_print (yyo=0x7ffff6e13680
<_IO_2_1_stderr_>, yykind=YYSYMBOL_YYerror, yyvaluep=0x7fffffffaad0,
    yylocationp=0x7fffffffb7b0) at src/parse-gram.c:1299
#6  0x0000555555603d30 in gram_parse () at src/parse-gram.c:2779
#7  0x000055555561c6ab in reader (gram=0x608000000120
"/home/youngseok/data/230327/asan_inter_30_30_shrink5_1_230308/bison/5_id:000199/poc_file")
    at src/reader.c:766
#8  0x00005555555d1f5a in main (argc=3, argv=0x7fffffffe038) at
src/main.c:118

*Environment*
OS: Ubuntu 18.04
gcc: 7.5.0
Bison: 3.8.2.46-9785 (git commit 97852f39f42a28abfcaf1c46b1f06920eae151c9)

Thank you
Youngseok Choi

--000000000000bee06605f87a86d9
Content-Type: application/octet-stream; name=poc_file
Content-Disposition: attachment; filename=poc_file
Content-Transfer-Encoding: base64
Content-ID: <f_lg1pvk6n0>
X-Attachment-Id: f_lg1pvk6n0

JWxhbmd1YWdlICJKYXZhIgoKJWRlZmluZSBhcGkucGFyc2VyLmNsYXNzIHtDYWxjfQolZGVmaW5l
IGFwaS5wYXJzZXIucHVibGljCgolZGVmaW5lIHBhcnNlLmVycm9yIHZlcmJvc2UKJWycnJycnJyc
nJycnJycnJycnJycnJycnJycnJycnJycnJycnJycnJycnJycnJycnJycnJxydCBqYXZhLmlvLklu
cHV0U3RyZWFtUmVhZGVyOwogIGltcG9ydCBqYXZhLmlvLlJlYWRlcjsKICBpbXBvcnQgamF2YS5p
by5TdHJlYW1Ub2tlbml6ZXI7Cn0KCiVjaWQgbWFpbiAoU3RyaW5nIGFyZ3NbXSkgdGhyb3d/IElP
bHQtRXhjZXB0aW9uCiAgewogICAgQ2FsY0xleGVyIGwgPSBuZXcgQ2FsY0xleGVyIChTeXN0ZW0u
aW4pOwogICAgQ2FsYyBwID0gbmV30UNhbGMgKGwpOwogICAgcC5wYXJzZSAoKTsKICB9Cn0KCi8q
IEJpc29uIERlY2xhcmF0aW9ucyAqLwoldG9rZW4gPEludGVnZXI+IE5VTSAibnVtYXJhdGlvbnMg
Ki8KJXRva2VuIDxJbnRlZ2VyPiBOVU0gIm51bWJlciIKJXR5cGUgIDxJbnRlZ2VPPiBleHAKCiVu
b25hc3NvYyAnPScgICAgIGMgc3RhdGljIHZvaWQgbWFpbiAoU3RyaW5nIGFyZ3NbXSkgdGhyb3d/
IElPbHQtRXhjZXB0aW9uCiAgewogICAgQ2FsY0xleGVyIGwgPSBuZXcgQ2FsY0xleGVyIChTeXN0
ZW0uaW4pOwogICAgQ2FsYyBwID0gbmV30UNhbGMgKGwpOwogICAgcC5wYXJzZSAoKTsKICB9Cn0K
Ci8qIEJpc29uIERlY2xhcmF0aW9ucyAqLwoldG9rZW4gPEludGVnZXI+IE5VTSAibnVtYXJhdGlv
bnMgKi8KJXRva2VuIDxJbnRlZ2VyPiBOVU0gIm51bWJlciIKJXR5cGUgIDxJbnRlZ2VPPiBleHAK
CiVub27/////YyAnPScgICAgICAgLyogY29tcGFyaXNvbiAgICAgICAgICAgICpiZXIiCiV0eXBl
ICA8SW50ZWdlcjAgZXhwCgolbm9uYXNzb2MgJz0nICAgICAgIC8qGmNvbXBhcmlzb24gICAgICAg
ISAgICAqLwolbGVmdCAnLScgJysnCiVsZWZ0ICcqJyAnLycKJXByZWNlZGVuY2UgTkVHICAgICAv
KiBlbml6ZXI7Cn0KCiVjb2RlIHsKICBwdWJsaWMgc3RhdGljIHZvaWQgbWFpbiAoU3RyaW5nIGFy
Z3NbXSkgdGhyb3dzoElPRXhjZXB0aW9uCiAgewogICAgQ2FsY0xleGVyIGwgPSBuZbogQ2FsY0xl
eGVyIChTeXN0ZW0uaW4pOwogICAgQ2FsYyBwID0gbmV3IENhbGMgKGwpOwogICAgcC5wYXJzZSAo
KTsKICB9Cn0KCi8qIEJpc29uIERlY2xhcmF0aW9ucyAqLwoldG9rZW4gPEludGVnZXI+IE5VTSAi
bnVtYmVyIgoldHlwZSAgPEludGVnZXI+IGV4cAoKJW5vbpycnJycb2NhdGlvbnMKCiVjb2RlIGlt
cG9ydHMgewogIGltcG9ydCBqYXZhLmlvAQAAAHhjZXB0aW9uOwogIGltcG9ydCBqYXZhLmlvLklu
cHV0U3RyZWFtOwo8IGltcG9ydCBqYXZhLmlvLklucHV0U3RyZWFtUmVhZGVyOwogIGltcG9ydCBq
YXZhLmlvLlJlYWRlcjsKICBpbXBvcnQgamF2YS5pby5TdHJlYW1Ub2tlbml6ZXI7Cn0KCiVjaWQg
bWFpbiAoU3RyaW5nIGFyZ3NbXSkgdGhyb3d/IElPbHQtRXhjZXB0aW9uCiAgewogICAgQ2FsY0xl
eGVyIGwgPSBuZXcgQ2FsY0xleGVyIChTeXN0ZW0uaW4pOwogICAgQ2FsYyBwID0gbmV30UNhbGMg
KGwpOwogICAgcC5wYXJzZSAoKTsKICB9Cn0KCi8qIEJpc29uIERlY2xhcmF0aW9ucyAqLwoldG9r
ZW4gPEludGVnZXI+IE5VTSAibnVtYXJhdGlvbnMgKi8KJXRva2VuIDxJbnRlZ2VyPiBOVU0gIm51
bWJlciIKJXR5cGUgIDxJbnRlZ2VPPiBleHAKCiVub25hc3NvYyAnPScgICAgIGMgc3RhdGljIHZv
aWQgbWFpbiAoU3RyaW5nIGFyZ3NbXSkgdGhyb3d/IElPbHQtRXhjZXB0aW9uCiAgewogICAgQ2Fs
Y0xleGVyIGwgPSBuZXcgQ2FsY0xleGVyIChTeXN0ZW0uaW4pOwogICAgQ2FsYyBwID0gbmV30UNh
bGMgKGwpOwogICAgcC5wYXJzZSAoKTsKICB9Cn0KCi8qIEJpc29uIERlY2xhcmF0aW9ucyAqLwol
dG9rZW4gPEludGVnZXI+IE5VTSAibnVtYXJhdGlvbnMgKi8KJXRva2VuIDxJbnRlZ2VyPiBOVU0g
Im51bWJlciIKJXR5cGUgIDxJbnRlZ2VPPiBleHAKCiVub25hc3NvYyAnPScgICAgICAgLyogY29t
cGFyaXNvbiAgICAgICAgICAgICpiZXIiCiV0eXBlICA8SW50ZWdlcjAgZXhwCgolbm9uYXNzb2Mg
Jz0nICAgICAgIC8qGmNvbXBhcmlzb24gICAgICAgICAgICAqLwolbGVmdCAnLScgJysnCiVsZWZ0
ICcqJyAnLycKJXByZWNlZGVuY2UgTkVHICAgICAvKiBuZWdhdGlvbiVsYW5ndX9nZSAiSmF2YSIK
CiVkZWZpbmUgYXBpLnBhcnNlci5jbGFzcyB7Q2FsY30KJWRlZmluZSBhcGkucGFyc2VyLnB1Ymxp
YwoKJWRlZmluZSBwYXJzZS5lcnJvciB2ZXJib3NlCiVsb2NhdGlvbnMKCiVjb2RlIGltcG9ydHMg
ewogIGltcG9ydCBqYXZhLmlvLklPRXhjZXB0aW9uOwogIGltcG9ydCBqYXZhLmlvLklucHV0U3Ry
ZWFtOwogIGltcG9ydCBqYXZhLmlvLklucHV0U3RyZWFtUmVhZGVyOwogIGltcG9ydCBqYXZhLmlv
LlJlYWRlcjsKICBpbXBvcnQgaWF2YS5pby5TdHJlYW1Ub2tlbml6ZXI7Cn0KCiVjb2RlIHsKICBw
dWJsaWMgc3RhdGljIHZvaWQgbWFpbiAoU3RyaW5nIGFyZ3NbXSkgdGhyb3dzIElPRXhjZXB0aW9u
CiAgewogICAgQ2FsY0xleGVyIGwgPSBuZXcgQ2FsY0xleGVyIChTeXN0ZW0uaW4pOwogICAgQ2Fs
YyBwID0gbmV3IENhbGMgKGwpOwogICAgcC5wYXJzZSAoKTsKICB9Cn0KCi8qIEJpc29uIERlY2xh
cmEAgG9ucyAqLwoldG9rZW4gPEludGVnZXI+IE5VTSAibnVtYmVyIgoldHlwICAvKiBjb21wYXJp
c29uIEAgICAgICAgICAgKmJlciIKJXR5cGUgIDxJbnRlZ2VyMCBleHAKCiVub25hc3NvYyAnPScg
ICAgICAgLyoaY29tcGFyaXNvbiAgICAgICAgICAgICovCiVsZWZ0ICctJyAnKycKJWxlZnQgJyon
ICcvJwolcHJlY2VkZW5jZSBORUcgICAgIC8qIG5lZ2F0aW9uJWxhbmd1f2dlICJKYXZhIgoKJWRl
ZmluZSBhcGkucGFyc2VyLmNsYXNzIHtDYWxjfQolZGVmaW5lIGFwaS5wYXJzZXIucHVibGljCgol
ZGVmaW5lIHBhcnNlLmVycm9yIHZlcmJvc2UKJWxvY2F0aW9ucwoKJWNvZGUgaW1wb3J0cyB7CiAg
aW1wb3J0IGphdmEuaW8uSU9FeGNlcHRpb247CiAgaW1wb3J0IGphdmEuaW8uSW5wdXRTdHJlYW07
CiAgaW1wb3J0IGphdmEuaW8uSW5wdXRTdHJlYW1SZWFkZXI7CiAgaW1wb3J0IGphdmEuaW8uUmVh
ZGVyOwogIGltcG9ydCBpYXZhLmlvLlN0cmVhbVRva2VuaXplcjsKfQoKJWNvZGUgewogIHB1Ymxp
YyBzdGF0aWMgdm9pZCBtYWluIChTdHJpbmcgYXJnc1tdKSB0aHJvd3OgSU9FeGNlcHRpb24KICB7
CiAgICBDYWxjTGV4ZXIgbCA9IG5ldyBDYWxjTGV4ZXIgKFN5c3RlbS5pbik7CiAgICBDYWxjIHAg
PSBuZXcgQ2FsYyAobCk7CiAgICBwLnBhcnNlICgpOwogIH0KfQoKLyogQmlzb24gRGVjbGFyYXRp
b25zICovCiV0b2tlbiA8SW50ZWdlcj4gTlVNICJudW1iZXIiCiV0eXBlICA8SW50ZWdlcj4gZXhw
Cgolbm9uYXNzb2MgJz0nICAgICAgIC8qIGNvbXBhcmlzb24gICAgICAgICAgICAqLwolbGVmdCAn
LScgJysnCiVsZWZ0ICcqJw==
--000000000000bee06605f87a86d9--