[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Octave-bug-tracker] [bug #64781] VM (?): ASAN crash on test bytecode.ts
From: |
Dmitri A. Sergatskov |
Subject: |
[Octave-bug-tracker] [bug #64781] VM (?): ASAN crash on test bytecode.tst |
Date: |
Mon, 16 Oct 2023 21:31:48 -0400 (EDT) |
URL:
<https://savannah.gnu.org/bugs/?64781>
Summary: VM (?): ASAN crash on test bytecode.tst
Group: GNU Octave
Submitter: dasergatskov
Submitted: Tue 17 Oct 2023 01:31:46 AM UTC
Category: Interpreter
Severity: 3 - Normal
Priority: 5 - Normal
Item Group: Segfault, Bus Error, etc.
Status: None
Assigned to: None
Originator Name:
Originator Email:
Open/Closed: Open
Release: dev
Discussion Lock: Any
Operating System: GNU/Linux
Fixed Release: None
Planned Release: None
_______________________________________________________
Follow-up Comments:
-------------------------------------------------------
Date: Tue 17 Oct 2023 01:31:46 AM UTC By: Dmitri A. Sergatskov <dasergatskov>
$ LSAN_OPTIONS="leak_check_at_exit=0" ./run-octave
octave:1> cd ../test/compile
octave:2> test bytecode.tst
warning: Matlab-style short-circuit operation performed for operator &
warning: called from
bytecode_if at line 104 column 16
__test__ at line 8 column 2
test at line 682 column 11
warning: Matlab-style short-circuit operation performed for operator &
warning: called from
bytecode_if at line 108 column 16
__test__ at line 8 column 2
test at line 682 column 11
warning: Matlab-style short-circuit operation performed for operator |
warning: called from
bytecode_if at line 116 column 16
__test__ at line 8 column 2
test at line 682 column 11
warning: Matlab-style short-circuit operation performed for operator |
warning: called from
bytecode_if at line 128 column 17
__test__ at line 8 column 2
test at line 682 column 11
warning: Matlab-style short-circuit operation performed for operator &
warning: called from
bytecode_if at line 104 column 16
__test__ at line 13 column 2
test at line 682 column 11
warning: Matlab-style short-circuit operation performed for operator &
warning: called from
bytecode_if at line 108 column 16
__test__ at line 13 column 2
test at line 682 column 11
warning: Matlab-style short-circuit operation performed for operator |
warning: called from
bytecode_if at line 116 column 16
__test__ at line 13 column 2
test at line 682 column 11
warning: Matlab-style short-circuit operation performed for operator |
warning: called from
bytecode_if at line 128 column 17
__test__ at line 13 column 2
test at line 682 column 11
warning: global: 'd' is defined in the current scope.
warning: global: in a future version, global variables must be declared before
use.
warning: global: existing local value used to initialize global variable
warning: called from
bytecode_global_1>sub1 at line 170 column 3
bytecode_global_1 at line 33 column 3
__test__ at line 13 column 2
test at line 682 column 11
warning: global: 'e' is defined in the current scope.
warning: global: in a future version, global variables must be declared before
use.
warning: global: global value overrides existing local value
warning: called from
bytecode_global_1>sub1 at line 184 column 3
bytecode_global_1 at line 33 column 3
__test__ at line 13 column 2
test at line 682 column 11
warning: global: 'd' is defined in the current scope.
warning: global: in a future version, global variables must be declared before
use.
warning: global: global value overrides existing local value
warning: called from
bytecode_global_1>sub1 at line 170 column 3
bytecode_global_1 at line 40 column 3
__test__ at line 13 column 2
test at line 682 column 11
warning: global: 'e' is defined in the current scope.
warning: global: in a future version, global variables must be declared before
use.
warning: global: global value overrides existing local value
warning: called from
bytecode_global_1>sub1 at line 184 column 3
bytecode_global_1 at line 40 column 3
__test__ at line 13 column 2
test at line 682 column 11
warning: global: 'c' is defined in the current scope.
warning: global: in a future version, global variables must be declared before
use.
warning: global: existing local value used to initialize global variable
warning: called from
bytecode_global_1 at line 58 column 3
__test__ at line 13 column 2
test at line 682 column 11
warning: global: 'p' is defined in the current scope.
warning: global: in a future version, global variables must be declared before
use.
warning: global: existing local value used to initialize global variable
warning: called from
bytecode_global_1 at line 106 column 3
__test__ at line 13 column 2
test at line 682 column 11
warning: Auto-compilation of MemoizedFunction failed with message Classdef
constructors are not supported by the VM yet
warning: called from
bytecode_index_obj at line 39 column 7
__test__ at line 12 column 2
test at line 682 column 11
warning: Auto-compilation of cdef_foo failed with message Classdef
constructors are not supported by the VM yet
warning: called from
bytecode_cdef_use at line 7 column 6
__test__ at line 18 column 2
test at line 682 column 11
warning: Auto-compilation of Map failed with message Classdef constructors are
not supported by the VM yet
warning: called from
bytecode_cdef_use>suby at line 51 column 5
bytecode_cdef_use at line 31 column 3
__test__ at line 18 column 2
test at line 682 column 11
a = 0
a = 0
a = 0
a = 0
The disp of e and pi underneath is on purpose. There should be a 'e = 2' and
'ans = 3.14...'
e = 2
ans = 3.1416
=================================================================
==123251==ERROR: AddressSanitizer: heap-buffer-overflow on address
0x6060017b835b at pc 0x7fac65bcd4bf bp 0x7fac38145d70 sp 0x7fac38145d68
READ of size 1 at 0x6060017b835b thread T8 (QThread)
#0 0x7fac65bcd4be in octave::vm::execute_code(octave_value_list const&,
int)
/home/dima/src/octave9/octave/clang_asan/../libinterp/parse-tree/pt-bytecode-vm.cc
#1 0x7fac65bece9f in octave::vm::call(octave::tree_evaluator&, int,
octave_value_list const&, octave_user_code*,
std::shared_ptr<octave::stack_frame>)
/home/dima/src/octave9/octave/clang_asan/../libinterp/parse-tree/pt-bytecode-vm.cc:7554:14
#2 0x7fac65713fc3 in octave_user_script::call(octave::tree_evaluator&,
int, octave_value_list const&)
/home/dima/src/octave9/octave/clang_asan/../libinterp/octave-value/ov-usr-fcn.cc:220:16
#3 0x7fac65b9caed in octave::vm::execute_code(octave_value_list const&,
int)
/home/dima/src/octave9/octave/clang_asan/../libinterp/parse-tree/pt-bytecode-vm.cc:2277:46
#4 0x7fac65bece9f in octave::vm::call(octave::tree_evaluator&, int,
octave_value_list const&, octave_user_code*,
std::shared_ptr<octave::stack_frame>)
/home/dima/src/octave9/octave/clang_asan/../libinterp/parse-tree/pt-bytecode-vm.cc:7554:14
#5 0x7fac65713fc3 in octave_user_script::call(octave::tree_evaluator&,
int, octave_value_list const&)
/home/dima/src/octave9/octave/clang_asan/../libinterp/octave-value/ov-usr-fcn.cc:220:16
#6 0x7fac65b9caed in octave::vm::execute_code(octave_value_list const&,
int)
/home/dima/src/octave9/octave/clang_asan/../libinterp/parse-tree/pt-bytecode-vm.cc:2277:46
#7 0x7fac65bece9f in octave::vm::call(octave::tree_evaluator&, int,
octave_value_list const&, octave_user_code*,
std::shared_ptr<octave::stack_frame>)
/home/dima/src/octave9/octave/clang_asan/../libinterp/parse-tree/pt-bytecode-vm.cc:7554:14
#8 0x7fac657187ab in octave_user_function::call(octave::tree_evaluator&,
int, octave_value_list const&)
/home/dima/src/octave9/octave/clang_asan/../libinterp/octave-value/ov-usr-fcn.cc:525:12
#9 0x7fac65c7ce7e in
octave::tree_identifier::evaluate_n(octave::tree_evaluator&, int)
/home/dima/src/octave9/octave/clang_asan/../libinterp/parse-tree/pt-id.cc:129:25
#10 0x7fac65c8033e in
octave::tree_identifier::evaluate(octave::tree_evaluator&, int)
/home/dima/src/octave9/octave/clang_asan/../libinterp/parse-tree/pt-id.h:94:32
#11 0x7fac65c14f2e in
octave::tree_evaluator::visit_statement(octave::tree_statement&)
/home/dima/src/octave9/octave/clang_asan/../libinterp/parse-tree/pt-eval.cc:3934:47
#12 0x7fac65c15b30 in
octave::tree_evaluator::visit_statement_list(octave::tree_statement_list&)
/home/dima/src/octave9/octave/clang_asan/../libinterp/parse-tree/pt-eval.cc:4019:16
#13 0x7fac65c4ef03 in
octave::tree_statement_list::accept(octave::tree_walker&)
/home/dima/src/octave9/octave/clang_asan/../libinterp/parse-tree/pt-stmt.h:193:8
#14 0x7fac65c4ef03 in
octave::tree_evaluator::execute_user_function(octave_user_function&, int,
octave_value_list const&)
/home/dima/src/octave9/octave/clang_asan/../libinterp/parse-tree/pt-eval.cc:3658:19
#15 0x7fac65718f06 in
octave_user_function::execute(octave::tree_evaluator&, int, octave_value_list
const&)
/home/dima/src/octave9/octave/clang_asan/../libinterp/octave-value/ov-usr-fcn.cc:538:13
#16 0x7fac65718b45 in octave_user_function::call(octave::tree_evaluator&,
int, octave_value_list const&)
/home/dima/src/octave9/octave/clang_asan/../libinterp/octave-value/ov-usr-fcn.cc:531:10
#17 0x7fac65c8511d in
octave::tree_index_expression::evaluate_n(octave::tree_evaluator&, int)
/home/dima/src/octave9/octave/clang_asan/../libinterp/parse-tree/pt-idx.cc:427:33
#18 0x7fac65c26a09 in
octave::tree_evaluator::eval_string(std::__cxx11::basic_string<char,
std::char_traits<char>, std::allocator<char>> const&, bool, int&, int)
/home/dima/src/octave9/octave/clang_asan/../libinterp/parse-tree/pt-eval.cc:1055:34
#19 0x7fac65c29318 in
octave::tree_evaluator::eval(std::__cxx11::basic_string<char,
std::char_traits<char>, std::allocator<char>> const&, int)
/home/dima/src/octave9/octave/clang_asan/../libinterp/parse-tree/pt-eval.cc:1114:10
#20 0x7fac66a83374 in
octave::interpreter::eval(std::__cxx11::basic_string<char,
std::char_traits<char>, std::allocator<char>> const&, int)
/home/dima/src/octave9/octave/clang_asan/../libinterp/corefcn/interpreter.cc:1477:22
#21 0x7fac659b1d2f in octave::Feval(octave::interpreter&,
octave_value_list const&, int)
/home/dima/src/octave9/octave/clang_asan/../libinterp/parse-tree/oct-parse.yy:6463:19
#22 0x7fac65c4b80e in
octave::tree_evaluator::execute_builtin_function(octave_builtin&, int,
octave_value_list const&)
/home/dima/src/octave9/octave/clang_asan/../libinterp/parse-tree/pt-eval.cc:3427:16
#23 0x7fac6542f436 in octave_builtin::execute(octave::tree_evaluator&,
int, octave_value_list const&)
/home/dima/src/octave9/octave/clang_asan/../libinterp/octave-value/ov-builtin.cc:49:13
#24 0x7fac655a90b7 in octave_function::call(octave::tree_evaluator&, int,
octave_value_list const&)
/home/dima/src/octave9/octave/clang_asan/../libinterp/octave-value/ov-fcn.cc:69:10
#25 0x7fac65c8511d in
octave::tree_index_expression::evaluate_n(octave::tree_evaluator&, int)
/home/dima/src/octave9/octave/clang_asan/../libinterp/parse-tree/pt-idx.cc:427:33
#26 0x7fac65c9019e in
octave::tree_index_expression::evaluate(octave::tree_evaluator&, int)
/home/dima/src/octave9/octave/clang_asan/../libinterp/parse-tree/pt-idx.h:104:32
#27 0x7fac65c14f2e in
octave::tree_evaluator::visit_statement(octave::tree_statement&)
/home/dima/src/octave9/octave/clang_asan/../libinterp/parse-tree/pt-eval.cc:3934:47
#28 0x7fac65c15b30 in
octave::tree_evaluator::visit_statement_list(octave::tree_statement_list&)
/home/dima/src/octave9/octave/clang_asan/../libinterp/parse-tree/pt-eval.cc:4019:16
#29 0x7fac65c15fbe in
octave::tree_statement_list::accept(octave::tree_walker&)
/home/dima/src/octave9/octave/clang_asan/../libinterp/parse-tree/pt-stmt.h:193:8
#30 0x7fac65c15fbe in
octave::tree_evaluator::visit_try_catch_command(octave::tree_try_catch_command&)
/home/dima/src/octave9/octave/clang_asan/../libinterp/parse-tree/pt-eval.cc:4134:21
#31 0x7fac65c14dc6 in
octave::tree_evaluator::visit_statement(octave::tree_statement&)
/home/dima/src/octave9/octave/clang_asan/../libinterp/parse-tree/pt-eval.cc:3909:20
#32 0x7fac65c15b30 in
octave::tree_evaluator::visit_statement_list(octave::tree_statement_list&)
/home/dima/src/octave9/octave/clang_asan/../libinterp/parse-tree/pt-eval.cc:4019:16
#33 0x7fac65c14dc6 in
octave::tree_evaluator::visit_statement(octave::tree_statement&)
/home/dima/src/octave9/octave/clang_asan/../libinterp/parse-tree/pt-eval.cc:3909:20
#34 0x7fac65c15b30 in
octave::tree_evaluator::visit_statement_list(octave::tree_statement_list&)
/home/dima/src/octave9/octave/clang_asan/../libinterp/parse-tree/pt-eval.cc:4019:16
#35 0x7fac65c16a29 in
octave::tree_statement_list::accept(octave::tree_walker&)
/home/dima/src/octave9/octave/clang_asan/../libinterp/parse-tree/pt-stmt.h:193:8
#36 0x7fac65c16a29 in
octave::tree_evaluator::visit_unwind_protect_command(octave::tree_unwind_protect_command&)
/home/dima/src/octave9/octave/clang_asan/../libinterp/parse-tree/pt-eval.cc:4279:32
#37 0x7fac65c14dc6 in
octave::tree_evaluator::visit_statement(octave::tree_statement&)
/home/dima/src/octave9/octave/clang_asan/../libinterp/parse-tree/pt-eval.cc:3909:20
#38 0x7fac65c15b30 in
octave::tree_evaluator::visit_statement_list(octave::tree_statement_list&)
/home/dima/src/octave9/octave/clang_asan/../libinterp/parse-tree/pt-eval.cc:4019:16
#39 0x7fac65c69a65 in
octave::tree_statement_list::accept(octave::tree_walker&)
/home/dima/src/octave9/octave/clang_asan/../libinterp/parse-tree/pt-stmt.h:193:8
#40 0x7fac65c69a65 in void
octave::tree_evaluator::execute_range_loop<double>(octave::range<double, void>
const&, int, octave::octave_lvalue&, octave::tree_statement_list*)
/home/dima/src/octave9/octave/clang_asan/../libinterp/parse-tree/pt-eval.cc:3083:20
#41 0x7fac65c0fb2a in
octave::tree_evaluator::visit_simple_for_command(octave::tree_simple_for_command&)
/home/dima/src/octave9/octave/clang_asan/../libinterp/parse-tree/pt-eval.cc:3130:11
#42 0x7fac65c14dc6 in
octave::tree_evaluator::visit_statement(octave::tree_statement&)
/home/dima/src/octave9/octave/clang_asan/../libinterp/parse-tree/pt-eval.cc:3909:20
#43 0x7fac65c15b30 in
octave::tree_evaluator::visit_statement_list(octave::tree_statement_list&)
/home/dima/src/octave9/octave/clang_asan/../libinterp/parse-tree/pt-eval.cc:4019:16
#44 0x7fac65c4ef03 in
octave::tree_statement_list::accept(octave::tree_walker&)
/home/dima/src/octave9/octave/clang_asan/../libinterp/parse-tree/pt-stmt.h:193:8
#45 0x7fac65c4ef03 in
octave::tree_evaluator::execute_user_function(octave_user_function&, int,
octave_value_list const&)
/home/dima/src/octave9/octave/clang_asan/../libinterp/parse-tree/pt-eval.cc:3658:19
#46 0x7fac65718f06 in
octave_user_function::execute(octave::tree_evaluator&, int, octave_value_list
const&)
/home/dima/src/octave9/octave/clang_asan/../libinterp/octave-value/ov-usr-fcn.cc:538:13
#47 0x7fac65718b45 in octave_user_function::call(octave::tree_evaluator&,
int, octave_value_list const&)
/home/dima/src/octave9/octave/clang_asan/../libinterp/octave-value/ov-usr-fcn.cc:531:10
#48 0x7fac65c8511d in
octave::tree_index_expression::evaluate_n(octave::tree_evaluator&, int)
/home/dima/src/octave9/octave/clang_asan/../libinterp/parse-tree/pt-idx.cc:427:33
#49 0x7fac65c9019e in
octave::tree_index_expression::evaluate(octave::tree_evaluator&, int)
/home/dima/src/octave9/octave/clang_asan/../libinterp/parse-tree/pt-idx.h:104:32
#50 0x7fac65c14f2e in
octave::tree_evaluator::visit_statement(octave::tree_statement&)
/home/dima/src/octave9/octave/clang_asan/../libinterp/parse-tree/pt-eval.cc:3934:47
#51 0x7fac65c15b30 in
octave::tree_evaluator::visit_statement_list(octave::tree_statement_list&)
/home/dima/src/octave9/octave/clang_asan/../libinterp/parse-tree/pt-eval.cc:4019:16
#52 0x7fac65c21f58 in
octave::tree_statement_list::accept(octave::tree_walker&)
/home/dima/src/octave9/octave/clang_asan/../libinterp/parse-tree/pt-stmt.h:193:8
#53 0x7fac65c21f58 in
octave::tree_evaluator::eval(std::shared_ptr<octave::tree_statement_list>&,
bool)
/home/dima/src/octave9/octave/clang_asan/../libinterp/parse-tree/pt-eval.cc:987:18
#54 0x7fac65c242cb in octave::tree_evaluator::repl()
/home/dima/src/octave9/octave/clang_asan/../libinterp/parse-tree/pt-eval.cc:806:19
#55 0x7fac66a78fb4 in octave::interpreter::main_loop()
/home/dima/src/octave9/octave/clang_asan/../libinterp/corefcn/interpreter.cc:1315:22
#56 0x7fac66a78fb4 in octave::interpreter::execute()
/home/dima/src/octave9/octave/clang_asan/../libinterp/corefcn/interpreter.cc:883:27
#57 0x7fac67d48db5 in octave::interpreter_qobject::execute()
/home/dima/src/octave9/octave/clang_asan/../libgui/src/interpreter-qobject.cc:87:32
#58 0x7fac627c09ef in QObject::event(QEvent*)
(/usr/lib64/libQt6Core.so.6+0x1c09ef) (BuildId:
976a49f297ee6be7d6187d2b1fcbb959f4d0d3d5)
#59 0x7fac639c17b5 in QApplicationPrivate::notify_helper(QObject*,
QEvent*) (/usr/lib64/libQt6Widgets.so.6+0x1c17b5) (BuildId:
1ae4ff2b51986370b1b17d0bfb4edbca1a080bf7)
#60 0x7fac67e7d2eb in octave::octave_qapplication::notify(QObject*,
QEvent*)
/home/dima/src/octave9/octave/clang_asan/../libgui/src/octave-qobject.cc:148:28
#61 0x7fac6276dbe7 in QCoreApplication::notifyInternal2(QObject*, QEvent*)
(/usr/lib64/libQt6Core.so.6+0x16dbe7) (BuildId:
976a49f297ee6be7d6187d2b1fcbb959f4d0d3d5)
#62 0x7fac62771327 in QCoreApplicationPrivate::sendPostedEvents(QObject*,
int, QThreadData*) (/usr/lib64/libQt6Core.so.6+0x171327) (BuildId:
976a49f297ee6be7d6187d2b1fcbb959f4d0d3d5)
#63 0x7fac629fd586 (/usr/lib64/libQt6Core.so.6+0x3fd586) (BuildId:
976a49f297ee6be7d6187d2b1fcbb959f4d0d3d5)
#64 0x7fac5e4eee2e in g_main_context_dispatch
(/lib64/libglib-2.0.so.0+0x54e2e) (BuildId:
80189208a41dc07a468d8e04ce37c9199dfe5384)
#65 0x7fac5e544107 (/lib64/libglib-2.0.so.0+0xaa107) (BuildId:
80189208a41dc07a468d8e04ce37c9199dfe5384)
#66 0x7fac5e4ec5f2 in g_main_context_iteration
(/lib64/libglib-2.0.so.0+0x525f2) (BuildId:
80189208a41dc07a468d8e04ce37c9199dfe5384)
#67 0x7fac629fcd5d in
QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>)
(/usr/lib64/libQt6Core.so.6+0x3fcd5d) (BuildId:
976a49f297ee6be7d6187d2b1fcbb959f4d0d3d5)
#68 0x7fac6277a192 in
QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>)
(/usr/lib64/libQt6Core.so.6+0x17a192) (BuildId:
976a49f297ee6be7d6187d2b1fcbb959f4d0d3d5)
#69 0x7fac62893c35 in QThread::exec()
(/usr/lib64/libQt6Core.so.6+0x293c35) (BuildId:
976a49f297ee6be7d6187d2b1fcbb959f4d0d3d5)
#70 0x7fac628e8c66 (/usr/lib64/libQt6Core.so.6+0x2e8c66) (BuildId:
976a49f297ee6be7d6187d2b1fcbb959f4d0d3d5)
#71 0x7fac5e29f801 in start_thread (/usr/lib64/libc.so.6+0x9f801)
(BuildId: e485243e9270ba9e6ec29408486ddc1542d946d4)
#72 0x7fac5e23f44f in __GI___clone3 (/usr/lib64/libc.so.6+0x3f44f)
(BuildId: e485243e9270ba9e6ec29408486ddc1542d946d4)
0x6060017b835b is located 0 bytes after 59-byte region
[0x6060017b8320,0x6060017b835b)
allocated by thread T8 (QThread) here:
#0 0x4f4b41 in operator new(unsigned long)
(/home/dima/src/octave9/octave/clang_asan/src/.libs/octave-gui+0x4f4b41)
(BuildId: b7f54c5edcf5abe9812dcbf4464fd335e13433fe)
#1 0x7fac65ab3430 in std::__new_allocator<unsigned
char>::allocate(unsigned long, void const*)
/opt/rh/gcc-toolset-13/root/usr/lib/gcc/x86_64-redhat-linux/13/../../../../include/c++/13/bits/new_allocator.h:147:27
#2 0x7fac65ab3430 in std::allocator_traits<std::allocator<unsigned
char>>::allocate(std::allocator<unsigned char>&, unsigned long)
/opt/rh/gcc-toolset-13/root/usr/lib/gcc/x86_64-redhat-linux/13/../../../../include/c++/13/bits/alloc_traits.h:482:20
#3 0x7fac65ab3430 in std::_Vector_base<unsigned char,
std::allocator<unsigned char>>::_M_allocate(unsigned long)
/opt/rh/gcc-toolset-13/root/usr/lib/gcc/x86_64-redhat-linux/13/../../../../include/c++/13/bits/stl_vector.h:378:20
#4 0x7fac65ab3430 in unsigned char* std::vector<unsigned char,
std::allocator<unsigned
char>>::_M_allocate_and_copy<__gnu_cxx::__normal_iterator<unsigned char
const*, std::vector<unsigned char, std::allocator<unsigned char>>>>(unsigned
long, __gnu_cxx::__normal_iterator<unsigned char const*, std::vector<unsigned
char, std::allocator<unsigned char>>>, __gnu_cxx::__normal_iterator<unsigned
char const*, std::vector<unsigned char, std::allocator<unsigned char>>>)
/opt/rh/gcc-toolset-13/root/usr/lib/gcc/x86_64-redhat-linux/13/../../../../include/c++/13/bits/stl_vector.h:1616:29
#5 0x7fac65ab3430 in std::vector<unsigned char, std::allocator<unsigned
char>>::operator=(std::vector<unsigned char, std::allocator<unsigned char>>
const&)
/opt/rh/gcc-toolset-13/root/usr/lib/gcc/x86_64-redhat-linux/13/../../../../include/c++/13/bits/vector.tcc:238:24
#6 0x7fac65ab3271 in octave::bytecode::operator=(octave::bytecode const&)
/home/dima/src/octave9/octave/clang_asan/../libinterp/parse-tree/pt-bytecode.h:277:8
#7 0x7fac65a83d79 in octave_user_code::set_bytecode(octave::bytecode&)
/home/dima/src/octave9/octave/clang_asan/../libinterp/octave-value/ov-usr-fcn.h:125:16
#8 0x7fac65a83d79 in octave::compile_user_function(octave_user_code&,
bool)
/home/dima/src/octave9/octave/clang_asan/../libinterp/parse-tree/pt-bytecode-walk.cc:160:11
#9 0x7fac65bebb20 in
octave::vm::maybe_compile_or_compiled(octave_user_code*,
std::map<std::__cxx11::basic_string<char, std::char_traits<char>,
std::allocator<char>>, octave_value,
std::less<std::__cxx11::basic_string<char, std::char_traits<char>,
std::allocator<char>>>,
std::allocator<std::pair<std::__cxx11::basic_string<char,
std::char_traits<char>, std::allocator<char>> const, octave_value>>>*)
/home/dima/src/octave9/octave/clang_asan/../libinterp/parse-tree/pt-bytecode-vm.cc:7493:13
#10 0x7fac65713d36 in octave_user_script::call(octave::tree_evaluator&,
int, octave_value_list const&)
/home/dima/src/octave9/octave/clang_asan/../libinterp/octave-value/ov-usr-fcn.cc:201:7
#11 0x7fac65b9caed in octave::vm::execute_code(octave_value_list const&,
int)
/home/dima/src/octave9/octave/clang_asan/../libinterp/parse-tree/pt-bytecode-vm.cc:2277:46
#12 0x7fac65bece9f in octave::vm::call(octave::tree_evaluator&, int,
octave_value_list const&, octave_user_code*,
std::shared_ptr<octave::stack_frame>)
/home/dima/src/octave9/octave/clang_asan/../libinterp/parse-tree/pt-bytecode-vm.cc:7554:14
#13 0x7fac65713fc3 in octave_user_script::call(octave::tree_evaluator&,
int, octave_value_list const&)
/home/dima/src/octave9/octave/clang_asan/../libinterp/octave-value/ov-usr-fcn.cc:220:16
#14 0x7fac65b9caed in octave::vm::execute_code(octave_value_list const&,
int)
/home/dima/src/octave9/octave/clang_asan/../libinterp/parse-tree/pt-bytecode-vm.cc:2277:46
#15 0x7fac65bece9f in octave::vm::call(octave::tree_evaluator&, int,
octave_value_list const&, octave_user_code*,
std::shared_ptr<octave::stack_frame>)
/home/dima/src/octave9/octave/clang_asan/../libinterp/parse-tree/pt-bytecode-vm.cc:7554:14
#16 0x7fac657187ab in octave_user_function::call(octave::tree_evaluator&,
int, octave_value_list const&)
/home/dima/src/octave9/octave/clang_asan/../libinterp/octave-value/ov-usr-fcn.cc:525:12
#17 0x7fac65c7ce7e in
octave::tree_identifier::evaluate_n(octave::tree_evaluator&, int)
/home/dima/src/octave9/octave/clang_asan/../libinterp/parse-tree/pt-id.cc:129:25
#18 0x7fac65c8033e in
octave::tree_identifier::evaluate(octave::tree_evaluator&, int)
/home/dima/src/octave9/octave/clang_asan/../libinterp/parse-tree/pt-id.h:94:32
#19 0x7fac65c14f2e in
octave::tree_evaluator::visit_statement(octave::tree_statement&)
/home/dima/src/octave9/octave/clang_asan/../libinterp/parse-tree/pt-eval.cc:3934:47
#20 0x7fac65c15b30 in
octave::tree_evaluator::visit_statement_list(octave::tree_statement_list&)
/home/dima/src/octave9/octave/clang_asan/../libinterp/parse-tree/pt-eval.cc:4019:16
#21 0x7fac65c4ef03 in
octave::tree_statement_list::accept(octave::tree_walker&)
/home/dima/src/octave9/octave/clang_asan/../libinterp/parse-tree/pt-stmt.h:193:8
#22 0x7fac65c4ef03 in
octave::tree_evaluator::execute_user_function(octave_user_function&, int,
octave_value_list const&)
/home/dima/src/octave9/octave/clang_asan/../libinterp/parse-tree/pt-eval.cc:3658:19
#23 0x7fac65718f06 in
octave_user_function::execute(octave::tree_evaluator&, int, octave_value_list
const&)
/home/dima/src/octave9/octave/clang_asan/../libinterp/octave-value/ov-usr-fcn.cc:538:13
#24 0x7fac65718b45 in octave_user_function::call(octave::tree_evaluator&,
int, octave_value_list const&)
/home/dima/src/octave9/octave/clang_asan/../libinterp/octave-value/ov-usr-fcn.cc:531:10
#25 0x7fac65c8511d in
octave::tree_index_expression::evaluate_n(octave::tree_evaluator&, int)
/home/dima/src/octave9/octave/clang_asan/../libinterp/parse-tree/pt-idx.cc:427:33
#26 0x7fac65c26a09 in
octave::tree_evaluator::eval_string(std::__cxx11::basic_string<char,
std::char_traits<char>, std::allocator<char>> const&, bool, int&, int)
/home/dima/src/octave9/octave/clang_asan/../libinterp/parse-tree/pt-eval.cc:1055:34
#27 0x7fac65c29318 in
octave::tree_evaluator::eval(std::__cxx11::basic_string<char,
std::char_traits<char>, std::allocator<char>> const&, int)
/home/dima/src/octave9/octave/clang_asan/../libinterp/parse-tree/pt-eval.cc:1114:10
#28 0x7fac66a83374 in
octave::interpreter::eval(std::__cxx11::basic_string<char,
std::char_traits<char>, std::allocator<char>> const&, int)
/home/dima/src/octave9/octave/clang_asan/../libinterp/corefcn/interpreter.cc:1477:22
#29 0x7fac659b1d2f in octave::Feval(octave::interpreter&,
octave_value_list const&, int)
/home/dima/src/octave9/octave/clang_asan/../libinterp/parse-tree/oct-parse.yy:6463:19
#30 0x7fac65c4b80e in
octave::tree_evaluator::execute_builtin_function(octave_builtin&, int,
octave_value_list const&)
/home/dima/src/octave9/octave/clang_asan/../libinterp/parse-tree/pt-eval.cc:3427:16
#31 0x7fac6542f436 in octave_builtin::execute(octave::tree_evaluator&,
int, octave_value_list const&)
/home/dima/src/octave9/octave/clang_asan/../libinterp/octave-value/ov-builtin.cc:49:13
#32 0x7fac655a90b7 in octave_function::call(octave::tree_evaluator&, int,
octave_value_list const&)
/home/dima/src/octave9/octave/clang_asan/../libinterp/octave-value/ov-fcn.cc:69:10
#33 0x7fac65c8511d in
octave::tree_index_expression::evaluate_n(octave::tree_evaluator&, int)
/home/dima/src/octave9/octave/clang_asan/../libinterp/parse-tree/pt-idx.cc:427:33
#34 0x7fac65c9019e in
octave::tree_index_expression::evaluate(octave::tree_evaluator&, int)
/home/dima/src/octave9/octave/clang_asan/../libinterp/parse-tree/pt-idx.h:104:32
#35 0x7fac65c14f2e in
octave::tree_evaluator::visit_statement(octave::tree_statement&)
/home/dima/src/octave9/octave/clang_asan/../libinterp/parse-tree/pt-eval.cc:3934:47
Thread T8 (QThread) created by T0 here:
#0 0x4a10de in __interceptor_pthread_create
(/home/dima/src/octave9/octave/clang_asan/src/.libs/octave-gui+0x4a10de)
(BuildId: b7f54c5edcf5abe9812dcbf4464fd335e13433fe)
#1 0x7fac628e8654 in QThread::start(QThread::Priority)
(/usr/lib64/libQt6Core.so.6+0x2e8654) (BuildId:
976a49f297ee6be7d6187d2b1fcbb959f4d0d3d5)
SUMMARY: AddressSanitizer: heap-buffer-overflow
/home/dima/src/octave9/octave/clang_asan/../libinterp/parse-tree/pt-bytecode-vm.cc
in octave::vm::execute_code(octave_value_list const&, int)
Shadow bytes around the buggy address:
0x6060017b8080: fd fd fd fd fd fd fd fd fa fa fa fa fd fd fd fd
0x6060017b8100: fd fd fd fd fa fa fa fa fd fd fd fd fd fd fd fd
0x6060017b8180: fa fa fa fa fd fd fd fd fd fd fd fd fa fa fa fa
0x6060017b8200: fd fd fd fd fd fd fd fd fa fa fa fa fd fd fd fd
0x6060017b8280: fd fd fd fd fa fa fa fa fd fd fd fd fd fd fd fd
=>0x6060017b8300: fa fa fa fa 00 00 00 00 00 00 00[03]fa fa fa fa
0x6060017b8380: 00 00 00 00 00 00 00 00 fa fa fa fa 00 00 00 00
0x6060017b8400: 00 00 00 00 fa fa fa fa 00 00 00 00 00 00 00 00
0x6060017b8480: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa
0x6060017b8500: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa
0x6060017b8580: fa fa fa fa fa 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
==123251==ABORTING
hg id e9eb8975961e
Dmitri.
--
_______________________________________________________
Reply to this item at:
<https://savannah.gnu.org/bugs/?64781>
_______________________________________________
Message sent via Savannah
https://savannah.gnu.org/
- [Octave-bug-tracker] [bug #64781] VM (?): ASAN crash on test bytecode.tst,
Dmitri A. Sergatskov <=