bugGNU Octave - Bugs: bug #55981, test...

 
 

bug #55981: test libinterp/corefcn/bsxfun.cc-tst coredumps (with ASAN)

Submitted by:  Dmitri A. Sergatskov <dasergatskov>
Submitted on:  Fri 22 Mar 2019 09:50:26 PM UTC  
 
Category:  Interpreter Severity:  3 - Normal
Priority:  5 - Normal Item Group:  None
Status:  Fixed Assigned to:  None
Originator Name:  Open/Closed:  Closed
Release:  dev Operating System:  GNU/Linux

Add a New Comment (Rich Markup)
   

You are not logged in

Please log in, so followups can be emailed to you.

 

( Jump to the original submission)

Tue 26 Mar 2019 07:03:35 PM UTC, comment #8: 

Okay, looks good to me too after running test suite.  Marking as fixed and closing report.

Rik <rik5>
Project Administrator
Tue 26 Mar 2019 06:52:41 PM UTC, comment #7: 

Same here.

Dmitri.
--

Dmitri A. Sergatskov <dasergatskov>
Tue 26 Mar 2019 05:22:36 PM UTC, comment #6: 

The test suite completed for me with only memory leak messages at the end.  Most of the direct leaks seem to be due to setenv which I think we can't do much about.

John W. Eaton <jwe>
Project Administrator
Tue 26 Mar 2019 04:09:30 PM UTC, comment #5: 

Running "test bsxfun.cc" now works fine.  I'm running the entire test suite under ASAN to see if there is anything else that comes up.

Rik <rik5>
Project Administrator
Tue 26 Mar 2019 02:13:30 PM UTC, comment #4: 

I pushed the following changeset:

http://hg.savannah.gnu.org/hgweb/octave/rev/4274f6962e6b

It seems to fix the problem for me.  Running make check with ASAN now to see if there are any other issues.

John W. Eaton <jwe>
Project Administrator
Tue 26 Mar 2019 05:12:34 AM UTC, comment #3: 

This problem could be due to some change I made with function handles.  I'll take a look.

John W. Eaton <jwe>
Project Administrator
Mon 25 Mar 2019 08:44:54 PM UTC, comment #2: 

When I build with ASAN I usually configure w/o java and w/o docs.
That speeds things up a little bit.

Dmitri.

Dmitri A. Sergatskov <dasergatskov>
Mon 25 Mar 2019 08:40:53 PM UTC, comment #1: 

Confirmed.  It took me a while to rebuild with ASAN options, but it does fail in the same way.  This is with hg id 2b23129f8a96 from 3/25/2019.

Rik <rik5>
Project Administrator
Fri 22 Mar 2019 09:50:26 PM UTC, original submission:  

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.
--

Dmitri A. Sergatskov <dasergatskov>

 

(Note: upload size limit is set to 16384 kB, after insertion of the required escape characters.)

Attach Files:
   
   
Comment:
   

No files currently attached

 

Depends on the following items: None found

Items that depend on this one: None found

 

Carbon-Copy List
  • -email is unavailable- added by jwe (Posted a comment)
  • -email is unavailable- added by rik5 (Posted a comment)
  • -email is unavailable- added by dasergatskov (Submitted the item)
  •  

    Do you think this task is very important?
    If so, you can add your encouragement to it.
    This task has 0 encouragements so far.

    Only project members can vote.

     

     

     

    Follow 4 latest changes.

    Date Changed by Updated Field Previous Value => Replaced by
    2019-03-26 rik5 StatusReady For Test => Fixed
        Open/ClosedOpen => Closed
    2019-03-26 jwe StatusConfirmed => Ready For Test
    2019-03-25 rik5 StatusNone => Confirmed

    Back to the top


    Powered by Savane 3.5