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

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Octave-bug-tracker] [bug #55981] test libinterp/corefcn/bsxfun.cc-tst c


From: Dmitri A. Sergatskov
Subject: [Octave-bug-tracker] [bug #55981] test libinterp/corefcn/bsxfun.cc-tst coredumps (with ASAN)
Date: Fri, 22 Mar 2019 17:50:28 -0400 (EDT)
User-agent: Mozilla/5.0 (X11; Fedora; Linux x86_64; rv:66.0) Gecko/20100101 Firefox/66.0

URL:
  <https://savannah.gnu.org/bugs/?55981>

                 Summary: test libinterp/corefcn/bsxfun.cc-tst coredumps (with
ASAN)
                 Project: GNU Octave
            Submitted by: dasergatskov
            Submitted on: Fri 22 Mar 2019 09:50:26 PM UTC
                Category: Interpreter
                Severity: 3 - Normal
                Priority: 5 - Normal
              Item Group: None
                  Status: None
             Assigned to: None
         Originator Name: 
        Originator Email: 
             Open/Closed: Open
         Discussion Lock: Any
                 Release: dev
        Operating System: GNU/Linux

    _______________________________________________________

Details:

When compiled with ASAN, 



octave:2> test libinterp/corefcn/bsxfun.cc-tst 
=================================================================
==7112==ERROR: AddressSanitizer: heap-use-after-free on address 0x61400009ac40
at pc 0x7f3cdd60024e bp 0x7f3cb54e6e70 sp 0x7f3cb54e6e60
READ of size 8 at 0x61400009ac40 thread T9 (QThread)
    #0 0x7f3cdd60024d in
octave::fcn_info::fcn_info_rep::xfind(octave::symbol_scope const&,
octave_value_list const&) ../libinterp/corefcn/fcn-info.cc:396
    #1 0x7f3cdd5ffb73 in
octave::fcn_info::fcn_info_rep::find(octave::symbol_scope const&,
octave_value_list const&) ../libinterp/corefcn/fcn-info.cc:355
    #2 0x7f3cdde4352d in octave::fcn_info::find(octave::symbol_scope const&,
octave_value_list const&) ../libinterp/corefcn/fcn-info.h:255
    #3 0x7f3cdde38173 in
octave::symbol_table::fcn_table_find(std::__cxx11::basic_string<char,
std::char_traits<char>, std::allocator<char> > const&, octave_value_list
const&, octave::symbol_scope const&) ../libinterp/corefcn/symtab.cc:175
    #4 0x7f3cdde38a3b in
octave::symbol_table::find_function(std::__cxx11::basic_string<char,
std::char_traits<char>, std::allocator<char> > const&, octave_value_list
const&, octave::symbol_scope const&) ../libinterp/corefcn/symtab.cc:227
    #5 0x7f3cdcfeab1c in octave_fcn_handle::function_value(bool)
../libinterp/octave-value/ov-fcn-handle.cc:336
    #6 0x7f3cdd0f837a in octave_value::function_value(bool) const
../libinterp/octave-value/ov.cc:1662
    #7 0x7f3cdd43cb61 in Fbsxfun(octave::interpreter&, octave_value_list
const&, int) ../libinterp/corefcn/bsxfun.cc:369
    #8 0x7f3cdcf30070 in octave_builtin::call(octave::tree_evaluator&, int,
octave_value_list const&) ../libinterp/octave-value/ov-builtin.cc:71
    #9 0x7f3cdd2fd552 in
octave::tree_evaluator::visit_index_expression(octave::tree_index_expression&)
../libinterp/parse-tree/pt-eval.cc:2234
    #10 0x7f3cdd336800 in
octave::tree_index_expression::accept(octave::tree_walker&)
../libinterp/parse-tree/pt-idx.h:106
    #11 0x7f3cdce6d691 in
octave::tree_evaluator::evaluate(octave::tree_expression*, int)
../libinterp/parse-tree/pt-eval.h:317
    #12 0x7f3cdd305157 in
octave::tree_evaluator::visit_statement(octave::tree_statement&)
../libinterp/parse-tree/pt-eval.cc:2989
    #13 0x7f3cdd34def6 in octave::tree_statement::accept(octave::tree_walker&)
../libinterp/parse-tree/pt-stmt.h:119
    #14 0x7f3cdd3056ea in
octave::tree_evaluator::visit_statement_list(octave::tree_statement_list&)
../libinterp/parse-tree/pt-eval.cc:3048
    #15 0x7f3cdce6df9c in
octave::tree_statement_list::accept(octave::tree_walker&)
../libinterp/parse-tree/pt-stmt.h:194
    #16 0x7f3cdd2fa1e7 in
octave::tree_evaluator::execute_user_function(octave_user_function&, int,
octave_value_list const&, octave::stack_frame*)
../libinterp/parse-tree/pt-eval.cc:1890
    #17 0x7f3cdd0e12ed in octave_user_function::call(octave::tree_evaluator&,
int, octave_value_list const&, octave::stack_frame*)
../libinterp/octave-value/ov-usr-fcn.cc:457
    #18 0x7f3cdd0e88f7 in octave_user_function::call(octave::tree_evaluator&,
int, octave_value_list const&)
(/d2/home/dima/src/octave/gcc_asan/libinterp/.libs/liboctinterp.so.7+0x14e68f7)
    #19 0x7f3cdd2fd552 in
octave::tree_evaluator::visit_index_expression(octave::tree_index_expression&)
../libinterp/parse-tree/pt-eval.cc:2234
    #20 0x7f3cdd336800 in
octave::tree_index_expression::accept(octave::tree_walker&)
../libinterp/parse-tree/pt-idx.h:106
    #21 0x7f3cdd311f59 in
octave::tree_evaluator::evaluate_n(octave::tree_expression*, int)
../libinterp/parse-tree/pt-eval.h:348
    #22 0x7f3cdd2eb300 in
octave::tree_evaluator::eval_string(std::__cxx11::basic_string<char,
std::char_traits<char>, std::allocator<char> > const&, bool, int&, int)
../libinterp/parse-tree/pt-eval.cc:241
    #23 0x7f3cdd2ebbd0 in octave::tree_evaluator::eval_string(octave_value
const&, bool, int&, int) ../libinterp/parse-tree/pt-eval.cc:292
    #24 0x7f3cddaed71f in octave::interpreter::eval_string(octave_value
const&, bool, int&, int) ../libinterp/corefcn/interpreter.cc:1183
    #25 0x7f3cdd296c37 in Feval(octave::interpreter&, octave_value_list
const&, int) ../libinterp/parse-tree/oct-parse.yy:5478
    #26 0x7f3cdcf30070 in octave_builtin::call(octave::tree_evaluator&, int,
octave_value_list const&) ../libinterp/octave-value/ov-builtin.cc:71
    #27 0x7f3cdd2fd552 in
octave::tree_evaluator::visit_index_expression(octave::tree_index_expression&)
../libinterp/parse-tree/pt-eval.cc:2234
    #28 0x7f3cdd336800 in
octave::tree_index_expression::accept(octave::tree_walker&)
../libinterp/parse-tree/pt-idx.h:106
    #29 0x7f3cdce6d691 in
octave::tree_evaluator::evaluate(octave::tree_expression*, int)
../libinterp/parse-tree/pt-eval.h:317
    #30 0x7f3cdd305157 in
octave::tree_evaluator::visit_statement(octave::tree_statement&)
../libinterp/parse-tree/pt-eval.cc:2989
    #31 0x7f3cdd34def6 in octave::tree_statement::accept(octave::tree_walker&)
../libinterp/parse-tree/pt-stmt.h:119
    #32 0x7f3cdd3056ea in
octave::tree_evaluator::visit_statement_list(octave::tree_statement_list&)
../libinterp/parse-tree/pt-eval.cc:3048
    #33 0x7f3cdce6df9c in
octave::tree_statement_list::accept(octave::tree_walker&)
../libinterp/parse-tree/pt-stmt.h:194
    #34 0x7f3cdd306415 in
octave::tree_evaluator::visit_try_catch_command(octave::tree_try_catch_command&)
../libinterp/parse-tree/pt-eval.cc:3165
    #35 0x7f3cdd32eac6 in
octave::tree_try_catch_command::accept(octave::tree_walker&)
../libinterp/parse-tree/pt-except.h:81
    #36 0x7f3cdd304f82 in
octave::tree_evaluator::visit_statement(octave::tree_statement&)
../libinterp/parse-tree/pt-eval.cc:2967
    #37 0x7f3cdd34def6 in octave::tree_statement::accept(octave::tree_walker&)
../libinterp/parse-tree/pt-stmt.h:119
    #38 0x7f3cdd3056ea in
octave::tree_evaluator::visit_statement_list(octave::tree_statement_list&)
../libinterp/parse-tree/pt-eval.cc:3048
    #39 0x7f3cdce6df9c in
octave::tree_statement_list::accept(octave::tree_walker&)
../libinterp/parse-tree/pt-stmt.h:194
    #40 0x7f3cdd2fc337 in
octave::tree_evaluator::visit_if_command_list(octave::tree_if_command_list&)
../libinterp/parse-tree/pt-eval.cc:2077
    #41 0x7f3cdd2ddd22 in
octave::tree_if_command_list::accept(octave::tree_walker&)
../libinterp/parse-tree/pt-select.h:115
    #42 0x7f3cdd2fbf49 in
octave::tree_evaluator::visit_if_command(octave::tree_if_command&)
../libinterp/parse-tree/pt-eval.cc:2055
    #43 0x7f3cdd34ac3e in
octave::tree_if_command::accept(octave::tree_walker&)
../libinterp/parse-tree/pt-select.h:148
    #44 0x7f3cdd304f82 in
octave::tree_evaluator::visit_statement(octave::tree_statement&)
../libinterp/parse-tree/pt-eval.cc:2967
    #45 0x7f3cdd34def6 in octave::tree_statement::accept(octave::tree_walker&)
../libinterp/parse-tree/pt-stmt.h:119
    #46 0x7f3cdd3056ea in
octave::tree_evaluator::visit_statement_list(octave::tree_statement_list&)
../libinterp/parse-tree/pt-eval.cc:3048
    #47 0x7f3cdce6df9c in
octave::tree_statement_list::accept(octave::tree_walker&)
../libinterp/parse-tree/pt-stmt.h:194
    #48 0x7f3cdd2fc337 in
octave::tree_evaluator::visit_if_command_list(octave::tree_if_command_list&)
../libinterp/parse-tree/pt-eval.cc:2077
    #49 0x7f3cdd2ddd22 in
octave::tree_if_command_list::accept(octave::tree_walker&)
../libinterp/parse-tree/pt-select.h:115
    #50 0x7f3cdd2fbf49 in
octave::tree_evaluator::visit_if_command(octave::tree_if_command&)
../libinterp/parse-tree/pt-eval.cc:2055
    #51 0x7f3cdd34ac3e in
octave::tree_if_command::accept(octave::tree_walker&)
../libinterp/parse-tree/pt-select.h:148
    #52 0x7f3cdd304f82 in
octave::tree_evaluator::visit_statement(octave::tree_statement&)
../libinterp/parse-tree/pt-eval.cc:2967
    #53 0x7f3cdd34def6 in octave::tree_statement::accept(octave::tree_walker&)
../libinterp/parse-tree/pt-stmt.h:119
    #54 0x7f3cdd3056ea in
octave::tree_evaluator::visit_statement_list(octave::tree_statement_list&)
../libinterp/parse-tree/pt-eval.cc:3048
    #55 0x7f3cdce6df9c in
octave::tree_statement_list::accept(octave::tree_walker&)
../libinterp/parse-tree/pt-stmt.h:194
    #56 0x7f3cdd3077b0 in
octave::tree_evaluator::visit_unwind_protect_command(octave::tree_unwind_protect_command&)
../libinterp/parse-tree/pt-eval.cc:3304
    #57 0x7f3cdd32eb3a in
octave::tree_unwind_protect_command::accept(octave::tree_walker&)
../libinterp/parse-tree/pt-except.h:148
    #58 0x7f3cdd304f82 in
octave::tree_evaluator::visit_statement(octave::tree_statement&)
../libinterp/parse-tree/pt-eval.cc:2967
    #59 0x7f3cdd34def6 in octave::tree_statement::accept(octave::tree_walker&)
../libinterp/parse-tree/pt-stmt.h:119
    #60 0x7f3cdd3056ea in
octave::tree_evaluator::visit_statement_list(octave::tree_statement_list&)
../libinterp/parse-tree/pt-eval.cc:3048
    #61 0x7f3cdce6df9c in
octave::tree_statement_list::accept(octave::tree_walker&)
../libinterp/parse-tree/pt-stmt.h:194
    #62 0x7f3cdd2f6dfb in
octave::tree_evaluator::visit_simple_for_command(octave::tree_simple_for_command&)
../libinterp/parse-tree/pt-eval.cc:1537
    #63 0x7f3cdd33e56c in
octave::tree_simple_for_command::accept(octave::tree_walker&)
../libinterp/parse-tree/pt-loop.h:219
    #64 0x7f3cdd304f82 in
octave::tree_evaluator::visit_statement(octave::tree_statement&)
../libinterp/parse-tree/pt-eval.cc:2967
    #65 0x7f3cdd34def6 in octave::tree_statement::accept(octave::tree_walker&)
../libinterp/parse-tree/pt-stmt.h:119
    #66 0x7f3cdd3056ea in
octave::tree_evaluator::visit_statement_list(octave::tree_statement_list&)
../libinterp/parse-tree/pt-eval.cc:3048
    #67 0x7f3cdce6df9c in
octave::tree_statement_list::accept(octave::tree_walker&)
../libinterp/parse-tree/pt-stmt.h:194
    #68 0x7f3cdd2fa1e7 in
octave::tree_evaluator::execute_user_function(octave_user_function&, int,
octave_value_list const&, octave::stack_frame*)
../libinterp/parse-tree/pt-eval.cc:1890
    #69 0x7f3cdd0e12ed in octave_user_function::call(octave::tree_evaluator&,
int, octave_value_list const&, octave::stack_frame*)
../libinterp/octave-value/ov-usr-fcn.cc:457
    #70 0x7f3cdd0e88f7 in octave_user_function::call(octave::tree_evaluator&,
int, octave_value_list const&)
(/d2/home/dima/src/octave/gcc_asan/libinterp/.libs/liboctinterp.so.7+0x14e68f7)
    #71 0x7f3cdd2fd552 in
octave::tree_evaluator::visit_index_expression(octave::tree_index_expression&)
../libinterp/parse-tree/pt-eval.cc:2234
    #72 0x7f3cdd336800 in
octave::tree_index_expression::accept(octave::tree_walker&)
../libinterp/parse-tree/pt-idx.h:106
    #73 0x7f3cdce6d691 in
octave::tree_evaluator::evaluate(octave::tree_expression*, int)
../libinterp/parse-tree/pt-eval.h:317
    #74 0x7f3cdd305157 in
octave::tree_evaluator::visit_statement(octave::tree_statement&)
../libinterp/parse-tree/pt-eval.cc:2989
    #75 0x7f3cdd34def6 in octave::tree_statement::accept(octave::tree_walker&)
../libinterp/parse-tree/pt-stmt.h:119
    #76 0x7f3cdd3056ea in
octave::tree_evaluator::visit_statement_list(octave::tree_statement_list&)
../libinterp/parse-tree/pt-eval.cc:3048
    #77 0x7f3cdce6df9c in
octave::tree_statement_list::accept(octave::tree_walker&)
../libinterp/parse-tree/pt-stmt.h:194
    #78 0x7f3cdd2ea730 in octave::tree_evaluator::repl(bool)
../libinterp/parse-tree/pt-eval.cc:112
    #79 0x7f3cddaea0d0 in octave::interpreter::main_loop()
../libinterp/corefcn/interpreter.cc:976
    #80 0x7f3cddae66fa in octave::interpreter::execute()
../libinterp/corefcn/interpreter.cc:690
    #81 0x7f3cde884b7b in octave::octave_interpreter::execute()
../libgui/src/main-window.cc:146
    #82 0x7f3cdea553ab in
octave::octave_interpreter::qt_static_metacall(QObject*, QMetaObject::Call,
int, void**) libgui/src/moc-main-window.cc:89
    #83 0x7f3cdaafdda5 in QObject::event(QEvent*)
(/lib64/libQt5Core.so.5+0x27ada5)
    #84 0x7f3cdb450284 in QApplicationPrivate::notify_helper(QObject*,
QEvent*) (/lib64/libQt5Widgets.so.5+0x16d284)
    #85 0x7f3cdb45799f in QApplication::notify(QObject*, QEvent*)
(/lib64/libQt5Widgets.so.5+0x17499f)
    #86 0x7f3cde8b0870 in octave::octave_qapplication::notify(QObject*,
QEvent*) ../libgui/src/main-window.cc:2817
    #87 0x7f3cdaad4ec5 in QCoreApplication::notifyInternal2(QObject*, QEvent*)
(/lib64/libQt5Core.so.5+0x251ec5)
    #88 0x7f3cdaad809a in QCoreApplicationPrivate::sendPostedEvents(QObject*,
int, QThreadData*) (/lib64/libQt5Core.so.5+0x25509a)
    #89 0x7f3cdab25806  (/lib64/libQt5Core.so.5+0x2a2806)
    #90 0x7f3cd3eb506c in g_main_context_dispatch
(/lib64/libglib-2.0.so.0+0x4f06c)
    #91 0x7f3cd3eb5437  (/lib64/libglib-2.0.so.0+0x4f437)
    #92 0x7f3cd3eb54cf in g_main_context_iteration
(/lib64/libglib-2.0.so.0+0x4f4cf)
    #93 0x7f3cdab25592 in
QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>)
(/lib64/libQt5Core.so.5+0x2a2592)
    #94 0x7f3cdaad3e0a in
QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>)
(/lib64/libQt5Core.so.5+0x250e0a)
    #95 0x7f3cda93be85 in QThread::exec() (/lib64/libQt5Core.so.5+0xb8e85)
    #96 0x7f3cda9452fa  (/lib64/libQt5Core.so.5+0xc22fa)
    #97 0x7f3cd652558d in start_thread (/lib64/libpthread.so.0+0x858d)
    #98 0x7f3cd64546a2 in clone (/lib64/libc.so.6+0xfd6a2)

0x61400009ac40 is located 0 bytes inside of 432-byte region
[0x61400009ac40,0x61400009adf0)
freed by thread T9 (QThread) here:
    #0 0x7f3cdeda0e10 in operator delete(void*, unsigned long)
(/lib64/libasan.so.5+0xf2e10)
    #1 0x7f3cdd0de6b0 in octave_user_function::~octave_user_function()
../libinterp/octave-value/ov-usr-fcn.cc:220
    #2 0x7f3cde82d4a3 in octave_value::operator=(octave_value const&)
(/d2/home/dima/src/octave/gcc_asan/libgui/.libs/liboctgui.so.5+0x2714a3)
    #3 0x7f3cdde431f0 in
octave::fcn_info::fcn_info_rep::clear_user_function(bool)
../libinterp/corefcn/fcn-info.h:171
    #4 0x7f3cdde438e3 in octave::fcn_info::clear_user_function(bool)
../libinterp/corefcn/fcn-info.h:342
    #5 0x7f3cdde39f36 in
octave::symbol_table::clear_function_pattern(std::__cxx11::basic_string<char,
std::char_traits<char>, std::allocator<char> > const&)
../libinterp/corefcn/symtab.cc:369
    #6 0x7f3cdd2f46b8 in
octave::tree_evaluator::clear_symbol_pattern(std::__cxx11::basic_string<char,
std::char_traits<char>, std::allocator<char> > const&)
../libinterp/parse-tree/pt-eval.cc:1319
    #7 0x7f3cddaedcc7 in
octave::interpreter::clear_symbol_pattern(std::__cxx11::basic_string<char,
std::char_traits<char>, std::allocator<char> > const&)
../libinterp/corefcn/interpreter.cc:1327
    #8 0x7f3cddece0f2 in do_matlab_compatible_clear
../libinterp/corefcn/variables.cc:1133
    #9 0x7f3cddeceb65 in Fclear(octave::interpreter&, octave_value_list
const&, int) ../libinterp/corefcn/variables.cc:1306
    #10 0x7f3cdcf30070 in octave_builtin::call(octave::tree_evaluator&, int,
octave_value_list const&) ../libinterp/octave-value/ov-builtin.cc:71
    #11 0x7f3cdd2fd552 in
octave::tree_evaluator::visit_index_expression(octave::tree_index_expression&)
../libinterp/parse-tree/pt-eval.cc:2234
    #12 0x7f3cdd336800 in
octave::tree_index_expression::accept(octave::tree_walker&)
../libinterp/parse-tree/pt-idx.h:106
    #13 0x7f3cdce6d691 in
octave::tree_evaluator::evaluate(octave::tree_expression*, int)
../libinterp/parse-tree/pt-eval.h:317
    #14 0x7f3cdd305157 in
octave::tree_evaluator::visit_statement(octave::tree_statement&)
../libinterp/parse-tree/pt-eval.cc:2989
    #15 0x7f3cdd34def6 in octave::tree_statement::accept(octave::tree_walker&)
../libinterp/parse-tree/pt-stmt.h:119
    #16 0x7f3cdd3056ea in
octave::tree_evaluator::visit_statement_list(octave::tree_statement_list&)
../libinterp/parse-tree/pt-eval.cc:3048
    #17 0x7f3cdce6df9c in
octave::tree_statement_list::accept(octave::tree_walker&)
../libinterp/parse-tree/pt-stmt.h:194
    #18 0x7f3cdd2fc337 in
octave::tree_evaluator::visit_if_command_list(octave::tree_if_command_list&)
../libinterp/parse-tree/pt-eval.cc:2077
    #19 0x7f3cdd2ddd22 in
octave::tree_if_command_list::accept(octave::tree_walker&)
../libinterp/parse-tree/pt-select.h:115
    #20 0x7f3cdd2fbf49 in
octave::tree_evaluator::visit_if_command(octave::tree_if_command&)
../libinterp/parse-tree/pt-eval.cc:2055
    #21 0x7f3cdd34ac3e in
octave::tree_if_command::accept(octave::tree_walker&)
../libinterp/parse-tree/pt-select.h:148
    #22 0x7f3cdd304f82 in
octave::tree_evaluator::visit_statement(octave::tree_statement&)
../libinterp/parse-tree/pt-eval.cc:2967
    #23 0x7f3cdd34def6 in octave::tree_statement::accept(octave::tree_walker&)
../libinterp/parse-tree/pt-stmt.h:119
    #24 0x7f3cdd3056ea in
octave::tree_evaluator::visit_statement_list(octave::tree_statement_list&)
../libinterp/parse-tree/pt-eval.cc:3048
    #25 0x7f3cdce6df9c in
octave::tree_statement_list::accept(octave::tree_walker&)
../libinterp/parse-tree/pt-stmt.h:194
    #26 0x7f3cdd3077b0 in
octave::tree_evaluator::visit_unwind_protect_command(octave::tree_unwind_protect_command&)
../libinterp/parse-tree/pt-eval.cc:3304
    #27 0x7f3cdd32eb3a in
octave::tree_unwind_protect_command::accept(octave::tree_walker&)
../libinterp/parse-tree/pt-except.h:148
    #28 0x7f3cdd304f82 in
octave::tree_evaluator::visit_statement(octave::tree_statement&)
../libinterp/parse-tree/pt-eval.cc:2967
    #29 0x7f3cdd34def6 in octave::tree_statement::accept(octave::tree_walker&)
../libinterp/parse-tree/pt-stmt.h:119

previously allocated by thread T9 (QThread) here:
    #0 0x7f3cded9f830 in operator new(unsigned long)
(/lib64/libasan.so.5+0xf1830)
    #1 0x7f3cdd281279 in
octave::base_parser::start_function(octave::tree_identifier*,
octave::tree_parameter_list*, octave::tree_statement_list*,
octave::tree_statement*) ../libinterp/parse-tree/oct-parse.yy:3351
    #2 0x7f3cdd280bf9 in octave::base_parser::make_function(octave::token*,
octave::tree_parameter_list*, octave::tree_identifier*,
octave::tree_parameter_list*, octave::tree_statement_list*,
octave::tree_statement*, octave::comment_list*)
../libinterp/parse-tree/oct-parse.yy:3313
    #3 0x7f3cdd271d99 in octave_push_parse(octave_pstate*, int, OCTAVE_STYPE
const*, octave::base_parser&) ../libinterp/parse-tree/oct-parse.yy:1638
    #4 0x7f3cdd260a5e in octave_pull_parse(octave_pstate*,
octave::base_parser&) libinterp/parse-tree/oct-parse.cc:3004
    #5 0x7f3cdd28a814 in octave::parser::run()
../libinterp/parse-tree/oct-parse.yy:4362
    #6 0x7f3cdd2eb0e0 in
octave::tree_evaluator::eval_string(std::__cxx11::basic_string<char,
std::char_traits<char>, std::allocator<char> > const&, bool, int&, int)
../libinterp/parse-tree/pt-eval.cc:224
    #7 0x7f3cdd2ebbd0 in octave::tree_evaluator::eval_string(octave_value
const&, bool, int&, int) ../libinterp/parse-tree/pt-eval.cc:292
    #8 0x7f3cddaed71f in octave::interpreter::eval_string(octave_value const&,
bool, int&, int) ../libinterp/corefcn/interpreter.cc:1183
    #9 0x7f3cdd296c37 in Feval(octave::interpreter&, octave_value_list const&,
int) ../libinterp/parse-tree/oct-parse.yy:5478
    #10 0x7f3cdcf30070 in octave_builtin::call(octave::tree_evaluator&, int,
octave_value_list const&) ../libinterp/octave-value/ov-builtin.cc:71
    #11 0x7f3cdd2fd552 in
octave::tree_evaluator::visit_index_expression(octave::tree_index_expression&)
../libinterp/parse-tree/pt-eval.cc:2234
    #12 0x7f3cdd336800 in
octave::tree_index_expression::accept(octave::tree_walker&)
../libinterp/parse-tree/pt-idx.h:106
    #13 0x7f3cdce6d691 in
octave::tree_evaluator::evaluate(octave::tree_expression*, int)
../libinterp/parse-tree/pt-eval.h:317
    #14 0x7f3cdd305157 in
octave::tree_evaluator::visit_statement(octave::tree_statement&)
../libinterp/parse-tree/pt-eval.cc:2989
    #15 0x7f3cdd34def6 in octave::tree_statement::accept(octave::tree_walker&)
../libinterp/parse-tree/pt-stmt.h:119
    #16 0x7f3cdd3056ea in
octave::tree_evaluator::visit_statement_list(octave::tree_statement_list&)
../libinterp/parse-tree/pt-eval.cc:3048
    #17 0x7f3cdce6df9c in
octave::tree_statement_list::accept(octave::tree_walker&)
../libinterp/parse-tree/pt-stmt.h:194
    #18 0x7f3cdd306415 in
octave::tree_evaluator::visit_try_catch_command(octave::tree_try_catch_command&)
../libinterp/parse-tree/pt-eval.cc:3165
    #19 0x7f3cdd32eac6 in
octave::tree_try_catch_command::accept(octave::tree_walker&)
../libinterp/parse-tree/pt-except.h:81
    #20 0x7f3cdd304f82 in
octave::tree_evaluator::visit_statement(octave::tree_statement&)
../libinterp/parse-tree/pt-eval.cc:2967
    #21 0x7f3cdd34def6 in octave::tree_statement::accept(octave::tree_walker&)
../libinterp/parse-tree/pt-stmt.h:119
    #22 0x7f3cdd3056ea in
octave::tree_evaluator::visit_statement_list(octave::tree_statement_list&)
../libinterp/parse-tree/pt-eval.cc:3048
    #23 0x7f3cdce6df9c in
octave::tree_statement_list::accept(octave::tree_walker&)
../libinterp/parse-tree/pt-stmt.h:194
    #24 0x7f3cdd2fc337 in
octave::tree_evaluator::visit_if_command_list(octave::tree_if_command_list&)
../libinterp/parse-tree/pt-eval.cc:2077
    #25 0x7f3cdd2ddd22 in
octave::tree_if_command_list::accept(octave::tree_walker&)
../libinterp/parse-tree/pt-select.h:115
    #26 0x7f3cdd2fbf49 in
octave::tree_evaluator::visit_if_command(octave::tree_if_command&)
../libinterp/parse-tree/pt-eval.cc:2055
    #27 0x7f3cdd34ac3e in
octave::tree_if_command::accept(octave::tree_walker&)
../libinterp/parse-tree/pt-select.h:148
    #28 0x7f3cdd304f82 in
octave::tree_evaluator::visit_statement(octave::tree_statement&)
../libinterp/parse-tree/pt-eval.cc:2967
    #29 0x7f3cdd34def6 in octave::tree_statement::accept(octave::tree_walker&)
../libinterp/parse-tree/pt-stmt.h:119

Thread T9 (QThread) created by T0 here:
    #0 0x7f3cded00f63 in __interceptor_pthread_create
(/lib64/libasan.so.5+0x52f63)
    #1 0x7f3cda944d76 in QThread::start(QThread::Priority)
(/lib64/libQt5Core.so.5+0xc1d76)

SUMMARY: AddressSanitizer: heap-use-after-free
../libinterp/corefcn/fcn-info.cc:396 in
octave::fcn_info::fcn_info_rep::xfind(octave::symbol_scope const&,
octave_value_list const&)
Shadow bytes around the buggy address:
  0x0c288000b530: fd fd fd fd fd fd fd fd fd fd fd fa fa fa fa fa
  0x0c288000b540: fa fa fa fa fa fa fa fa 00 00 00 00 00 00 00 00
  0x0c288000b550: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
  0x0c288000b560: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
  0x0c288000b570: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 fa fa
=>0x0c288000b580: fa fa fa fa fa fa fa fa[fd]fd fd fd fd fd fd fd
  0x0c288000b590: fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd
  0x0c288000b5a0: fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd
  0x0c288000b5b0: fd fd fd fd fd fd fd fd fd fd fd fd fd fd fa fa
  0x0c288000b5c0: fa fa fa fa fa fa fa fa 00 00 00 00 00 00 00 00
  0x0c288000b5d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
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
==7112==ABORTING


hg id
6731d89ef576 tip @


Dmitri.
-- 





    _______________________________________________________

Reply to this item at:

  <https://savannah.gnu.org/bugs/?55981>

_______________________________________________
  Message sent via Savannah
  https://savannah.gnu.org/




reply via email to

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