octave-bug-tracker
[Top][All Lists]
Advanced

[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/




reply via email to

[Prev in Thread] Current Thread [Next in Thread]