Status: New
Owner: ----
New issue 3820 by [email protected]: Null pointer deref in
v8::internal::Scanner::CurrentSymbol
https://code.google.com/p/v8/issues/detail?id=3820
I think this crash happens when there is incomplete raw character after
right brace.
$ cat crash1
`${tunz}\x
So, `${asdf}\u << also crashes.
Program received signal SIGSEGV, Segmentation fault.
v8::internal::Scanner::CurrentSymbol (this=0x7fffffffd780,
ast_value_factory=0x222cb70) at ../src/scanner.cc:1302
1302 if (is_literal_one_byte()) {
(gdb) bt
#0 v8::internal::Scanner::CurrentSymbol (this=0x7fffffffd780,
ast_value_factory=0x222cb70) at ../src/scanner.cc:1302
#1 0x000000000097e09a in v8::internal::Parser::AddTemplateSpan
(this=0x7fffffffd720, state=state@entry=0x7fffffffcc60,
tail=<optimized out>) at ../src/parser.cc:5190
#2 0x000000000098f767 in AddTemplateSpan (tail=false,
state=0x7fffffffcc60, this=0x7fffffffd720) at .././src/parser.h:995
#3
v8::internal::ParserBase<v8::internal::ParserTraits>::ParseTemplateLiteral
(this=0x7fffffffd720, tag=0x0, start=0,
ok=0x7fffffffd130) at .././src/preparser.h:2908
#4 0x0000000000987d18 in
v8::internal::ParserBase<v8::internal::ParserTraits>::ParsePrimaryExpression
(
this=this@entry=0x7fffffffd720, ok=ok@entry=0x7fffffffd130)
at .././src/preparser.h:1927
#5 0x00000000009884eb in
v8::internal::ParserBase<v8::internal::ParserTraits>::ParseMemberExpression
(
this=this@entry=0x7fffffffd720, ok=ok@entry=0x7fffffffd130)
at .././src/preparser.h:2686
#6 0x0000000000988b09 in
v8::internal::ParserBase<v8::internal::ParserTraits>::ParseMemberWithNewPrefixesExpression
(
this=this@entry=0x7fffffffd720, ok=ok@entry=0x7fffffffd130)
at .././src/preparser.h:2631
#7 0x0000000000988f31 in
v8::internal::ParserBase<v8::internal::ParserTraits>::ParseLeftHandSideExpression
(
this=this@entry=0x7fffffffd720, ok=ok@entry=0x7fffffffd130)
at .././src/preparser.h:2506
#8 0x0000000000989775 in
v8::internal::ParserBase<v8::internal::ParserTraits>::ParsePostfixExpression
(this=0x7fffffffd720,
ok=0x7fffffffd130) at .././src/preparser.h:2482
#9 0x0000000000989e6e in
v8::internal::ParserBase<v8::internal::ParserTraits>::ParseBinaryExpression
(
this=this@entry=0x7fffffffd720, prec=prec@entry=4,
accept_IN=accept_IN@entry=true, ok=ok@entry=0x7fffffffd130)
at .././src/preparser.h:2385
#10 0x000000000098ea5b in
v8::internal::ParserBase<v8::internal::ParserTraits>::ParseConditionalExpression
(this=0x7fffffffd720,
accept_IN=true, ok=0x7fffffffd130) at .././src/preparser.h:2367
#11 0x000000000098e218 in
v8::internal::ParserBase<v8::internal::ParserTraits>::ParseAssignmentExpression
(this=0x7fffffffd720,
accept_IN=<optimized out>, ok=0x7fffffffd130)
at .././src/preparser.h:2258
#12 0x000000000098ed28 in
v8::internal::ParserBase<v8::internal::ParserTraits>::ParseExpression
(this=this@entry=0x7fffffffd720,
accept_IN=accept_IN@entry=true, ok=ok@entry=0x7fffffffd130)
at .././src/preparser.h:1957
#13 0x000000000099a5d7 in
v8::internal::Parser::ParseExpressionOrLabelledStatement
(this=0x7fffffffd720, labels=0x0,
ok=0x7fffffffd130) at ../src/parser.cc:2445
#14 0x00000000009975b2 in v8::internal::Parser::ParseStatement
(this=this@entry=0x7fffffffd720, ok=ok@entry=0x7fffffffd130,
labels=0x0) at ../src/parser.cc:1731
#15 0x000000000098b249 in v8::internal::Parser::ParseModuleElement
(this=0x7fffffffd720, ok=0x7fffffffd130, labels=0x0)
at ../src/parser.cc:1204
#16 0x000000000098b848 in v8::internal::Parser::ParseSourceElements
(this=this@entry=0x7fffffffd720,
processor=processor@entry=0x2240280, end_token=end_token@entry=0,
is_eval=false, is_global=is_global@entry=true,
eval_scope=eval_scope@entry=0x7fffffffd200, ok=ok@entry=0x7fffffffd130)
at ../src/parser.cc:1104
#17 0x000000000098c07c in v8::internal::Parser::DoParseProgram
(this=this@entry=0x7fffffffd720, info=0x7fffffffd9f0,
scope=scope@entry=0x7fffffffd1f0,
eval_scope=eval_scope@entry=0x7fffffffd200) at ../src/parser.cc:936
#18 0x000000000099dd45 in v8::internal::Parser::ParseProgram
(this=0x7fffffffd720) at ../src/parser.cc:861
#19 0x000000000099ed3e in v8::internal::Parser::Parse (this=0x7fffffffd720)
at ../src/parser.cc:5131
#20 0x00000000004d76cd in v8::internal::Parser::Parse (info=0x7fffffffd9f0,
allow_lazy=<optimized out>) at .././src/parser.h:673
#21 0x00000000004dbad6 in v8::internal::CompileToplevel
(info=info@entry=0x7fffffffd9f0) at ../src/compiler.cc:1148
#22 0x00000000004ded41 in v8::internal::Compiler::CompileScript
(source=..., script_name=..., line_offset=0,
column_offset=<optimized out>, is_shared_cross_origin=<optimized out>,
context=..., extension=0x0, cached_data=0x7fffffffdbd0,
compile_options=v8::ScriptCompiler::kNoCompileOptions,
natives=v8::internal::NOT_NATIVES_CODE) at ../src/compiler.cc:1338
#23 0x000000000043b3a9 in v8::ScriptCompiler::CompileUnbound
(v8_isolate=0x21e6e60, source=0x7fffffffdc20, options=<optimized out>)
at ../src/api.cc:1549
#24 0x000000000040e92a in v8::Shell::CompileString
(isolate=isolate@entry=0x21e6e60, source=source@entry=...,
name=name@entry=...,
compile_options=v8::ScriptCompiler::kNoCompileOptions)
at ../src/d8.cc:246
#25 0x00000000004106ae in v8::Shell::ExecuteString
(isolate=isolate@entry=0x21e6e60, source=source@entry=...,
name=name@entry=...,
report_exceptions=true, print_result=false) at ../src/d8.cc:270
#26 0x0000000000413a43 in v8::SourceGroup::Execute (this=0x21e5018,
isolate=isolate@entry=0x21e6e60) at ../src/d8.cc:1213
#27 0x0000000000415107 in v8::Shell::RunMain
(isolate=isolate@entry=0x21e6e60, argc=argc@entry=2,
argv=argv@entry=0x7fffffffe188)
at ../src/d8.cc:1448
#28 0x000000000041e8d2 in v8::Shell::Main (argc=2, argv=0x7fffffffe188)
at ../src/d8.cc:1721
#29 0x00007ffff6de3ec5 in __libc_start_main (main=0x409710 <main>, argc=2,
argv=0x7fffffffe188, init=<optimized out>,
fini=<optimized out>, rtld_fini=<optimized out>,
stack_end=0x7fffffffe178) at libc-start.c:287
#30 0x0000000000409ba1 in _start ()
(gdb) print this->current_
$1 = {token = v8::internal::Token::RBRACE, location = {beg_pos = 7, end_pos
= 8}, literal_chars = 0x0, raw_literal_chars = 0x0}
I found it with afl-fuzz
--
You received this message because this project is configured to send all
issue notifications to this address.
You may adjust your notification preferences at:
https://code.google.com/hosting/settings
--
--
v8-dev mailing list
[email protected]
http://groups.google.com/group/v8-dev
---
You received this message because you are subscribed to the Google Groups "v8-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
For more options, visit https://groups.google.com/d/optout.