ctave:1> test liboctave/array/Sparse.cc-tst ================================================================= ==1045==ERROR: AddressSanitizer: heap-buffer-overflow on address 0x611000045eff at pc 0x7f8f97a4cb7c bp 0x7ffd8dfe6e90 sp 0x7ffd8dfe6e80 READ of size 1 at 0x611000045eff thread T0 #0 0x7f8f97a4cb7b in octave::lexer::fill_flex_buffer(char*, unsigned int) ../libinterp/parse-tree/lex.ll:3667 #1 0x7f8f97a548e8 in yy_get_next_buffer libinterp/parse-tree/lex.cc:3434 #2 0x7f8f97a6c8a4 in octave_lex(OCTAVE_STYPE*, void*) libinterp/parse-tree/lex.cc:3274 #3 0x7f8f97abf4b5 in octave_pull_parse(octave_pstate*, octave::base_parser&) libinterp/parse-tree/oct-parse.cc:2990 #4 0x7f8f97abf658 in octave::parser::run() libinterp/parse-tree/oct-parse.yy:4286 #5 0x7f8f97ac86e2 in octave::eval_string(std::__cxx11::basic_string, std::allocator > const&, bool, int&, int) libinterp/parse-tree/oct-parse.yy:5286 #6 0x7f8f97ac9e76 in eval_string libinterp/parse-tree/oct-parse.yy:5363 #7 0x7f8f97aca46d in Feval(octave_value_list const&, int) libinterp/parse-tree/oct-parse.yy:5440 #8 0x7f8f97543ee7 in octave_builtin::call(octave::tree_evaluator&, int, octave_value_list const&) ../libinterp/octave-value/ov-builtin.cc:65 #9 0x7f8f97b469db in octave::tree_evaluator::visit_index_expression(octave::tree_index_expression&) ../libinterp/parse-tree/pt-eval.cc:1302 #10 0x7f8f9765ccce in octave::tree_evaluator::evaluate(octave::tree_expression*, int) ../libinterp/parse-tree/pt-eval.h:270 #11 0x7f8f97b2fc15 in octave::tree_evaluator::visit_statement(octave::tree_statement&) ../libinterp/parse-tree/pt-eval.cc:2219 #12 0x7f8f97b15da6 in octave::tree_statement::accept(octave::tree_walker&) ../libinterp/parse-tree/pt-stmt.h:112 #13 0x7f8f97b15da6 in octave::tree_evaluator::visit_statement_list(octave::tree_statement_list&) ../libinterp/parse-tree/pt-eval.cc:2261 #14 0x7f8f97b21e45 in octave::tree_statement_list::accept(octave::tree_walker&) ../libinterp/parse-tree/pt-stmt.h:187 #15 0x7f8f97b21e45 in octave::tree_evaluator::visit_try_catch_command(octave::tree_try_catch_command&) ../libinterp/parse-tree/pt-eval.cc:2379 #16 0x7f8f97b2fac4 in octave::tree_evaluator::visit_statement(octave::tree_statement&) ../libinterp/parse-tree/pt-eval.cc:2186 #17 0x7f8f97b15da6 in octave::tree_statement::accept(octave::tree_walker&) ../libinterp/parse-tree/pt-stmt.h:112 #18 0x7f8f97b15da6 in octave::tree_evaluator::visit_statement_list(octave::tree_statement_list&) ../libinterp/parse-tree/pt-eval.cc:2261 #19 0x7f8f97b311ca in octave::tree_statement_list::accept(octave::tree_walker&) ../libinterp/parse-tree/pt-stmt.h:187 #20 0x7f8f97b311ca in octave::tree_evaluator::visit_if_command_list(octave::tree_if_command_list&) ../libinterp/parse-tree/pt-eval.cc:1123 #21 0x7f8f97b2fac4 in octave::tree_evaluator::visit_statement(octave::tree_statement&) ../libinterp/parse-tree/pt-eval.cc:2186 #22 0x7f8f97b15da6 in octave::tree_statement::accept(octave::tree_walker&) ../libinterp/parse-tree/pt-stmt.h:112 #23 0x7f8f97b15da6 in octave::tree_evaluator::visit_statement_list(octave::tree_statement_list&) ../libinterp/parse-tree/pt-eval.cc:2261 #24 0x7f8f97b311ca in octave::tree_statement_list::accept(octave::tree_walker&) ../libinterp/parse-tree/pt-stmt.h:187 #25 0x7f8f97b311ca in octave::tree_evaluator::visit_if_command_list(octave::tree_if_command_list&) ../libinterp/parse-tree/pt-eval.cc:1123 #26 0x7f8f97b2fac4 in octave::tree_evaluator::visit_statement(octave::tree_statement&) ../libinterp/parse-tree/pt-eval.cc:2186 #27 0x7f8f97b15da6 in octave::tree_statement::accept(octave::tree_walker&) ../libinterp/parse-tree/pt-stmt.h:112 #28 0x7f8f97b15da6 in octave::tree_evaluator::visit_statement_list(octave::tree_statement_list&) ../libinterp/parse-tree/pt-eval.cc:2261 #29 0x7f8f97b25166 in octave::tree_statement_list::accept(octave::tree_walker&) ../libinterp/parse-tree/pt-stmt.h:187 #30 0x7f8f97b25166 in octave::tree_evaluator::visit_unwind_protect_command(octave::tree_unwind_protect_command&) ../libinterp/parse-tree/pt-eval.cc:2520 #31 0x7f8f97b2fac4 in octave::tree_evaluator::visit_statement(octave::tree_statement&) ../libinterp/parse-tree/pt-eval.cc:2186 #32 0x7f8f97b15da6 in octave::tree_statement::accept(octave::tree_walker&) ../libinterp/parse-tree/pt-stmt.h:112 #33 0x7f8f97b15da6 in octave::tree_evaluator::visit_statement_list(octave::tree_statement_list&) ../libinterp/parse-tree/pt-eval.cc:2261 #34 0x7f8f97b2d05e in octave::tree_statement_list::accept(octave::tree_walker&) ../libinterp/parse-tree/pt-stmt.h:187 #35 0x7f8f97b2d05e in octave::tree_evaluator::visit_simple_for_command(octave::tree_simple_for_command&) ../libinterp/parse-tree/pt-eval.cc:818 #36 0x7f8f97b2fac4 in octave::tree_evaluator::visit_statement(octave::tree_statement&) ../libinterp/parse-tree/pt-eval.cc:2186 #37 0x7f8f97b15da6 in octave::tree_statement::accept(octave::tree_walker&) ../libinterp/parse-tree/pt-stmt.h:112 #38 0x7f8f97b15da6 in octave::tree_evaluator::visit_statement_list(octave::tree_statement_list&) ../libinterp/parse-tree/pt-eval.cc:2261 #39 0x7f8f978974df in octave::tree_statement_list::accept(octave::tree_walker&) ../libinterp/parse-tree/pt-stmt.h:187 #40 0x7f8f978974df in octave_user_function::call(octave::tree_evaluator&, int, octave_value_list const&) ../libinterp/octave-value/ov-usr-fcn.cc:644 #41 0x7f8f97b469db in octave::tree_evaluator::visit_index_expression(octave::tree_index_expression&) ../libinterp/parse-tree/pt-eval.cc:1302 #42 0x7f8f9765ccce in octave::tree_evaluator::evaluate(octave::tree_expression*, int) ../libinterp/parse-tree/pt-eval.h:270 #43 0x7f8f97b2fc15 in octave::tree_evaluator::visit_statement(octave::tree_statement&) ../libinterp/parse-tree/pt-eval.cc:2219 #44 0x7f8f97b15da6 in octave::tree_statement::accept(octave::tree_walker&) ../libinterp/parse-tree/pt-stmt.h:112 #45 0x7f8f97b15da6 in octave::tree_evaluator::visit_statement_list(octave::tree_statement_list&) ../libinterp/parse-tree/pt-eval.cc:2261 #46 0x7f8f985efcdb in octave::tree_statement_list::accept(octave::tree_walker&) ../libinterp/parse-tree/pt-stmt.h:187 #47 0x7f8f985efcdb in octave::interpreter::main_loop() ../libinterp/corefcn/interpreter.cc:976 #48 0x7f8f985fb34f in octave::interpreter::execute() ../libinterp/corefcn/interpreter.cc:697 #49 0x7f8f96745686 in octave::cli_application::execute() ../libinterp/octave.cc:382 #50 0x401ca4 in main ../src/main-cli.cc:90 #51 0x7f8f8add64d9 in __libc_start_main (/lib64/libc.so.6+0x204d9) #52 0x402329 in _start (/home/dima/src/octave/gcc_asan/src/.libs/lt-octave-cli+0x402329) 0x611000045eff is located 1 bytes to the left of 227-byte region [0x611000045f00,0x611000045fe3) allocated by thread T0 here: #0 0x7f8f9951c158 in operator new(unsigned long) (/lib64/libasan.so.4+0xe0158) #1 0x7f8f8bc2705e in std::__cxx11::basic_string, std::allocator >::_M_assign(std::__cxx11::basic_string, std::allocator > const&) (/lib64/libstdc++.so.6+0x12505e) SUMMARY: AddressSanitizer: heap-buffer-overflow ../libinterp/parse-tree/lex.ll:3667 in octave::lexer::fill_flex_buffer(char*, unsigned int) Shadow bytes around the buggy address: 0x0c2280000b80: fd fd fd fd fd fa fa fa fa fa fa fa fa fa fa fa 0x0c2280000b90: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0x0c2280000ba0: 00 00 00 00 00 00 00 00 00 00 00 00 03 fa fa fa 0x0c2280000bb0: fa fa fa fa fa fa fa fa 00 00 00 00 00 00 00 00 0x0c2280000bc0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 =>0x0c2280000bd0: 00 00 00 00 03 fa fa fa fa fa fa fa fa fa fa[fa] 0x0c2280000be0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0x0c2280000bf0: 00 00 00 00 00 00 00 00 00 00 00 00 03 fa fa fa 0x0c2280000c00: fa fa fa fa fa fa fa fa 00 00 00 00 00 00 00 00 0x0c2280000c10: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0x0c2280000c20: 00 00 00 00 03 fa fa fa fa fa fa fa fa fa fa fa Shadow byte legend (one shadow byte represents 8 application bytes): Addressable: 00 Partially addressable: 01 02 03 04 05 06 07 Heap left redzone: fa Freed heap region: fd Stack left redzone: f1 Stack mid redzone: f2 Stack right redzone: f3 Stack after return: f5 Stack use after scope: f8 Global redzone: f9 Global init order: f6 Poisoned by user: f7 Container overflow: fc Array cookie: ac Intra object redzone: bb ASan internal: fe Left alloca redzone: ca Right alloca redzone: cb ==1045==ABORTING