bugGNU Octave - Bugs: bug #52021, Memory problems detected by...

 
 

bug #52021: Memory problems detected by Address Sanitizer in Variable Editor

Submitter:  Rik <rik5>
Submitted:  Thu 14 Sep 2017 07:35:39 PM UTC
   
 
Category:  GUI Severity:  3 - Normal
Priority:  5 - Normal Item Group:  Segfault, Bus Error, etc.
Status:  Fixed Assigned to:  None
Originator Name:  Open/Closed:  * Closed
Release:  * dev Operating System:  * Any
Fixed Release:  None Planned Release:  None
* Mandatory Fields

Add a New Comment Rich Markup
   

Mon 11 Dec 2017 10:22:36 PM UTC, comment #4: 

This fixes it for me.  I'm not sure how you even determined that the 'const' specifier was the root of the problem, but at least this issue is gone.

Marking as fixed and closing report.

Rik <rik5>
Group administrator
Mon 11 Dec 2017 07:38:42 PM UTC, comment #3: 

Do you still see this problem after this changeset:

http://hg.savannah.gnu.org/hgweb/octave/rev/08f19fd144f4

?

John W. Eaton <jwe>
Group administrator
Wed 20 Sep 2017 05:55:35 AM UTC, comment #2: 

This may be a race issue.  At some points the "str" variable, say in input.h:188, appears to be garbage and very large.  It looks like it is supposed to be "", but even that is dumb because why would you eval() an empty string?

Rik <rik5>
Group administrator
Thu 14 Sep 2017 10:02:23 PM UTC, comment #1: 

(I posted this under wrong bug number
https://savannah.gnu.org/bugs/?52026 )
So, reposting here:

I cannot compile f50ef29d874e tip @ with asan:

LD_PRELOAD="libasan.so.4:libGLX_mesa.so.0" make V=1
rm -f bits/stl_algo.h
make  all-recursive
make[1]: Entering directory '/d2/home/dima/src/octave/gcc_asan'
Making all in libgnu
make[2]: Entering directory '/d2/home/dima/src/octave/gcc_asan/libgnu'
make  all-recursive
make[3]: Entering directory '/d2/home/dima/src/octave/gcc_asan/libgnu'
make[4]: Entering directory '/d2/home/dima/src/octave/gcc_asan/libgnu'
make[4]: Nothing to be done for 'all-am'.
make[4]: Leaving directory '/d2/home/dima/src/octave/gcc_asan/libgnu'
make[3]: Leaving directory '/d2/home/dima/src/octave/gcc_asan/libgnu'
make[2]: Leaving directory '/d2/home/dima/src/octave/gcc_asan/libgnu'
make[2]: Entering directory '/d2/home/dima/src/octave/gcc_asan'
rm -f doc/interpreter/plot-imageproperties.texi-t doc/interpreter/plot-imageproperties.texi && /bin/sh run-octave --norc --silent --no-history --path ../doc/interpreter --eval "genpropdoc ('image');" > doc/interpreter/plot-imageproperties.texi-t && mv doc/interpreter/plot-imageproperties.texi-t doc/interpreter/plot-imageproperties.texi
=================================================================
==3383==ERROR: AddressSanitizer: stack-use-after-scope on address 0x7f41d2d03640 at pc 0x7f420544c4ba bp 0x7f41d2d03500 sp 0x7f41d2d02ca8
WRITE of size 128 at 0x7f41d2d03640 thread T6 (QThread)
    #0 0x7f420544c4b9  (/lib64/libasan.so.4+0x394b9)
    #1 0x7f4200284a0a in octave_set_signal_handler_internal ../liboctave/wrappers/signal-wrappers.c:368
    #2 0x7f4200284c15 in octave_set_signal_handler_by_name ../liboctave/wrappers/signal-wrappers.c:384
    #3 0x7f4203e6c01e in octave::set_signal_handler(char const*, void (*)(int), bool) ../libinterp/corefcn/sighandlers.cc:420
    #4 0x7f4203e6c8a1 in octave::catch_interrupts() ../libinterp/corefcn/sighandlers.cc:565
    #5 0x7f4203ba3a40 in octave::interpreter::recover_from_exception() ../libinterp/corefcn/interpreter.cc:1257
    #6 0x7f420345bdef in octave::tree_evaluator::visit_try_catch_command(octave::tree_try_catch_command&) ../libinterp/parse-tree/pt-eval.cc:2374
    #7 0x7f420348ee4c in octave::tree_try_catch_command::accept(octave::tree_walker&) ../libinterp/parse-tree/pt-except.h:80
    #8 0x7f420345a0ba in octave::tree_evaluator::visit_statement(octave::tree_statement&) ../libinterp/parse-tree/pt-eval.cc:2176
    #9 0x7f42034ad246 in octave::tree_statement::accept(octave::tree_walker&) ../libinterp/parse-tree/pt-stmt.h:112
    #10 0x7f420345a7d8 in octave::tree_evaluator::visit_statement_list(octave::tree_statement_list&) ../libinterp/parse-tree/pt-eval.cc:2251
    #11 0x7f42030bfb2c in octave::tree_statement_list::accept(octave::tree_walker&) ../libinterp/parse-tree/pt-stmt.h:187
    #12 0x7f420344d848 in octave::tree_evaluator::visit_if_command_list(octave::tree_if_command_list&) ../libinterp/parse-tree/pt-eval.cc:1073
    #13 0x7f4203437bcc in octave::tree_if_command_list::accept(octave::tree_walker&) ../libinterp/parse-tree/pt-select.h:116
    #14 0x7f420344d4d4 in octave::tree_evaluator::visit_if_command(octave::tree_if_command&) ../libinterp/parse-tree/pt-eval.cc:1052
    #15 0x7f42034a9ff4 in octave::tree_if_command::accept(octave::tree_walker&) ../libinterp/parse-tree/pt-select.h:149
    #16 0x7f420345a0ba in octave::tree_evaluator::visit_statement(octave::tree_statement&) ../libinterp/parse-tree/pt-eval.cc:2176
    #17 0x7f42034ad246 in octave::tree_statement::accept(octave::tree_walker&) ../libinterp/parse-tree/pt-stmt.h:112
    #18 0x7f420345a7d8 in octave::tree_evaluator::visit_statement_list(octave::tree_statement_list&) ../libinterp/parse-tree/pt-eval.cc:2251
    #19 0x7f42030bfb2c in octave::tree_statement_list::accept(octave::tree_walker&) ../libinterp/parse-tree/pt-stmt.h:187
    #20 0x7f420344a9ba in octave::tree_evaluator::visit_simple_for_command(octave::tree_simple_for_command&) ../libinterp/parse-tree/pt-eval.cc:782
    #21 0x7f420349d4ee in octave::tree_simple_for_command::accept(octave::tree_walker&) ../libinterp/parse-tree/pt-loop.h:223
    #22 0x7f420345a0ba in octave::tree_evaluator::visit_statement(octave::tree_statement&) ../libinterp/parse-tree/pt-eval.cc:2176
    #23 0x7f42034ad246 in octave::tree_statement::accept(octave::tree_walker&) ../libinterp/parse-tree/pt-stmt.h:112
    #24 0x7f420345a7d8 in octave::tree_evaluator::visit_statement_list(octave::tree_statement_list&) ../libinterp/parse-tree/pt-eval.cc:2251
    #25 0x7f42030bfb2c in octave::tree_statement_list::accept(octave::tree_walker&) ../libinterp/parse-tree/pt-stmt.h:187
    #26 0x7f420325261a in octave_user_function::call(octave::tree_evaluator&, int, octave_value_list const&) ../libinterp/octave-value/ov-usr-fcn.cc:647
    #27 0x7f420344f166 in octave::tree_evaluator::visit_index_expression(octave::tree_index_expression&) ../libinterp/parse-tree/pt-eval.cc:1252
    #28 0x7f4203496b9c in octave::tree_index_expression::accept(octave::tree_walker&) ../libinterp/parse-tree/pt-idx.h:101
    #29 0x7f42030bf0e6 in octave::tree_evaluator::evaluate(octave::tree_expression*, int) ../libinterp/parse-tree/pt-eval.h:271
    #30 0x7f420345e060 in octave::tree_evaluator::is_logically_true(octave::tree_expression*, char const*) ../libinterp/parse-tree/pt-eval.cc:2782
    #31 0x7f420344d7fb in octave::tree_evaluator::visit_if_command_list(octave::tree_if_command_list&) ../libinterp/parse-tree/pt-eval.cc:1068
    #32 0x7f4203437bcc in octave::tree_if_command_list::accept(octave::tree_walker&) ../libinterp/parse-tree/pt-select.h:116
    #33 0x7f420344d4d4 in octave::tree_evaluator::visit_if_command(octave::tree_if_command&) ../libinterp/parse-tree/pt-eval.cc:1052
    #34 0x7f42034a9ff4 in octave::tree_if_command::accept(octave::tree_walker&) ../libinterp/parse-tree/pt-select.h:149
    #35 0x7f420345a0ba in octave::tree_evaluator::visit_statement(octave::tree_statement&) ../libinterp/parse-tree/pt-eval.cc:2176
    #36 0x7f42034ad246 in octave::tree_statement::accept(octave::tree_walker&) ../libinterp/parse-tree/pt-stmt.h:112
    #37 0x7f420345a7d8 in octave::tree_evaluator::visit_statement_list(octave::tree_statement_list&) ../libinterp/parse-tree/pt-eval.cc:2251
    #38 0x7f42030bfb2c in octave::tree_statement_list::accept(octave::tree_walker&) ../libinterp/parse-tree/pt-stmt.h:187
    #39 0x7f420344d848 in octave::tree_evaluator::visit_if_command_list(octave::tree_if_command_list&) ../libinterp/parse-tree/pt-eval.cc:1073
    #40 0x7f4203437bcc in octave::tree_if_command_list::accept(octave::tree_walker&) ../libinterp/parse-tree/pt-select.h:116
    #41 0x7f420344d4d4 in octave::tree_evaluator::visit_if_command(octave::tree_if_command&) ../libinterp/parse-tree/pt-eval.cc:1052
    #42 0x7f42034a9ff4 in octave::tree_if_command::accept(octave::tree_walker&) ../libinterp/parse-tree/pt-select.h:149
    #43 0x7f420345a0ba in octave::tree_evaluator::visit_statement(octave::tree_statement&) ../libinterp/parse-tree/pt-eval.cc:2176
    #44 0x7f42034ad246 in octave::tree_statement::accept(octave::tree_walker&) ../libinterp/parse-tree/pt-stmt.h:112
    #45 0x7f420345a7d8 in octave::tree_evaluator::visit_statement_list(octave::tree_statement_list&) ../libinterp/parse-tree/pt-eval.cc:2251
    #46 0x7f42030bfb2c in octave::tree_statement_list::accept(octave::tree_walker&) ../libinterp/parse-tree/pt-stmt.h:187
    #47 0x7f420345af0a in octave::tree_evaluator::visit_switch_command(octave::tree_switch_command&) ../libinterp/parse-tree/pt-eval.cc:2327
    #48 0x7f42034aa0dc in octave::tree_switch_command::accept(octave::tree_walker&) ../libinterp/parse-tree/pt-select.h:277
    #49 0x7f420345a0ba in octave::tree_evaluator::visit_statement(octave::tree_statement&) ../libinterp/parse-tree/pt-eval.cc:2176
    #50 0x7f42034ad246 in octave::tree_statement::accept(octave::tree_walker&) ../libinterp/parse-tree/pt-stmt.h:112
    #51 0x7f420345a7d8 in octave::tree_evaluator::visit_statement_list(octave::tree_statement_list&) ../libinterp/parse-tree/pt-eval.cc:2251
    #52 0x7f42030bfb2c in octave::tree_statement_list::accept(octave::tree_walker&) ../libinterp/parse-tree/pt-stmt.h:187
    #53 0x7f420325261a in octave_user_function::call(octave::tree_evaluator&, int, octave_value_list const&) ../libinterp/octave-value/ov-usr-fcn.cc:647
    #54 0x7f420344f166 in octave::tree_evaluator::visit_index_expression(octave::tree_index_expression&) ../libinterp/parse-tree/pt-eval.cc:1252
    #55 0x7f4203496b9c in octave::tree_index_expression::accept(octave::tree_walker&) ../libinterp/parse-tree/pt-idx.h:101
    #56 0x7f42030bf0e6 in octave::tree_evaluator::evaluate(octave::tree_expression*, int) ../libinterp/parse-tree/pt-eval.h:271
    #57 0x7f4203458ce1 in octave::tree_evaluator::visit_simple_assignment(octave::tree_simple_assignment&) ../libinterp/parse-tree/pt-eval.cc:2085
    #58 0x7f4203433964 in octave::tree_simple_assignment::accept(octave::tree_walker&) ../libinterp/parse-tree/pt-assign.h:83
    #59 0x7f42030bf0e6 in octave::tree_evaluator::evaluate(octave::tree_expression*, int) ../libinterp/parse-tree/pt-eval.h:271
    #60 0x7f420345a3d0 in octave::tree_evaluator::visit_statement(octave::tree_statement&) ../libinterp/parse-tree/pt-eval.cc:2209
    #61 0x7f42034ad246 in octave::tree_statement::accept(octave::tree_walker&) ../libinterp/parse-tree/pt-stmt.h:112
    #62 0x7f420345a7d8 in octave::tree_evaluator::visit_statement_list(octave::tree_statement_list&) ../libinterp/parse-tree/pt-eval.cc:2251
    #63 0x7f42030bfb2c in octave::tree_statement_list::accept(octave::tree_walker&) ../libinterp/parse-tree/pt-stmt.h:187
    #64 0x7f420344d848 in octave::tree_evaluator::visit_if_command_list(octave::tree_if_command_list&) ../libinterp/parse-tree/pt-eval.cc:1073
    #65 0x7f4203437bcc in octave::tree_if_command_list::accept(octave::tree_walker&) ../libinterp/parse-tree/pt-select.h:116
    #66 0x7f420344d4d4 in octave::tree_evaluator::visit_if_command(octave::tree_if_command&) ../libinterp/parse-tree/pt-eval.cc:1052
    #67 0x7f42034a9ff4 in octave::tree_if_command::accept(octave::tree_walker&) ../libinterp/parse-tree/pt-select.h:149
    #68 0x7f420345a0ba in octave::tree_evaluator::visit_statement(octave::tree_statement&) ../libinterp/parse-tree/pt-eval.cc:2176
    #69 0x7f42034ad246 in octave::tree_statement::accept(octave::tree_walker&) ../libinterp/parse-tree/pt-stmt.h:112
    #70 0x7f420345a7d8 in octave::tree_evaluator::visit_statement_list(octave::tree_statement_list&) ../libinterp/parse-tree/pt-eval.cc:2251
    #71 0x7f42030bfb2c in octave::tree_statement_list::accept(octave::tree_walker&) ../libinterp/parse-tree/pt-stmt.h:187
    #72 0x7f420345c7fd in octave::tree_evaluator::visit_unwind_protect_command(octave::tree_unwind_protect_command&) ../libinterp/parse-tree/pt-eval.cc:2510
    #73 0x7f420348eec0 in octave::tree_unwind_protect_command::accept(octave::tree_walker&) ../libinterp/parse-tree/pt-except.h:145
    #74 0x7f420345a0ba in octave::tree_evaluator::visit_statement(octave::tree_statement&) ../libinterp/parse-tree/pt-eval.cc:2176
    #75 0x7f42034ad246 in octave::tree_statement::accept(octave::tree_walker&) ../libinterp/parse-tree/pt-stmt.h:112
    #76 0x7f420345a7d8 in octave::tree_evaluator::visit_statement_list(octave::tree_statement_list&) ../libinterp/parse-tree/pt-eval.cc:2251
    #77 0x7f42030bfb2c in octave::tree_statement_list::accept(octave::tree_walker&) ../libinterp/parse-tree/pt-stmt.h:187
    #78 0x7f420325261a in octave_user_function::call(octave::tree_evaluator&, int, octave_value_list const&) ../libinterp/octave-value/ov-usr-fcn.cc:647
    #79 0x7f420344f166 in octave::tree_evaluator::visit_index_expression(octave::tree_index_expression&) ../libinterp/parse-tree/pt-eval.cc:1252
    #80 0x7f4203496b9c in octave::tree_index_expression::accept(octave::tree_walker&) ../libinterp/parse-tree/pt-idx.h:101
    #81 0x7f42030bf0e6 in octave::tree_evaluator::evaluate(octave::tree_expression*, int) ../libinterp/parse-tree/pt-eval.h:271
    #82 0x7f4203458ce1 in octave::tree_evaluator::visit_simple_assignment(octave::tree_simple_assignment&) ../libinterp/parse-tree/pt-eval.cc:2085
    #83 0x7f4203433964 in octave::tree_simple_assignment::accept(octave::tree_walker&) ../libinterp/parse-tree/pt-assign.h:83
    #84 0x7f420325d358 in octave::tree_evaluator::evaluate_n(octave::tree_expression*, int) ../libinterp/parse-tree/pt-eval.h:284
    #85 0x7f42033fa5dc in octave::eval_string(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, bool, int&, int) libinterp/parse-tree/oct-parse.yy:5353
    #86 0x7f42033fae9a in eval_string libinterp/parse-tree/oct-parse.yy:5399
    #87 0x7f42033fb2aa in Feval(octave_value_list const&, int) libinterp/parse-tree/oct-parse.yy:5476
    #88 0x7f4202ff9467 in octave_builtin::call(octave::tree_evaluator&, int, octave_value_list const&) ../libinterp/octave-value/ov-builtin.cc:65
    #89 0x7f420344f166 in octave::tree_evaluator::visit_index_expression(octave::tree_index_expression&) ../libinterp/parse-tree/pt-eval.cc:1252
    #90 0x7f4203496b9c in octave::tree_index_expression::accept(octave::tree_walker&) ../libinterp/parse-tree/pt-idx.h:101
    #91 0x7f42030bf0e6 in octave::tree_evaluator::evaluate(octave::tree_expression*, int) ../libinterp/parse-tree/pt-eval.h:271
    #92 0x7f420345a3d0 in octave::tree_evaluator::visit_statement(octave::tree_statement&) ../libinterp/parse-tree/pt-eval.cc:2209
    #93 0x7f42034ad246 in octave::tree_statement::accept(octave::tree_walker&) ../libinterp/parse-tree/pt-stmt.h:112
    #94 0x7f420345a7d8 in octave::tree_evaluator::visit_statement_list(octave::tree_statement_list&) ../libinterp/parse-tree/pt-eval.cc:2251
    #95 0x7f42030bfb2c in octave::tree_statement_list::accept(octave::tree_walker&) ../libinterp/parse-tree/pt-stmt.h:187
    #96 0x7f420344d848 in octave::tree_evaluator::visit_if_command_list(octave::tree_if_command_list&) ../libinterp/parse-tree/pt-eval.cc:1073
    #97 0x7f4203437bcc in octave::tree_if_command_list::accept(octave::tree_walker&) ../libinterp/parse-tree/pt-select.h:116
    #98 0x7f420344d4d4 in octave::tree_evaluator::visit_if_command(octave::tree_if_command&) ../libinterp/parse-tree/pt-eval.cc:1052
    #99 0x7f42034a9ff4 in octave::tree_if_command::accept(octave::tree_walker&) ../libinterp/parse-tree/pt-select.h:149
    #100 0x7f420345a0ba in octave::tree_evaluator::visit_statement(octave::tree_statement&) ../libinterp/parse-tree/pt-eval.cc:2176
    #101 0x7f42034ad246 in octave::tree_statement::accept(octave::tree_walker&) ../libinterp/parse-tree/pt-stmt.h:112
    #102 0x7f420345a7d8 in octave::tree_evaluator::visit_statement_list(octave::tree_statement_list&) ../libinterp/parse-tree/pt-eval.cc:2251
    #103 0x7f42030bfb2c in octave::tree_statement_list::accept(octave::tree_walker&) ../libinterp/parse-tree/pt-stmt.h:187
    #104 0x7f420325261a in octave_user_function::call(octave::tree_evaluator&, int, octave_value_list const&) ../libinterp/octave-value/ov-usr-fcn.cc:647
    #105 0x7f420344f166 in octave::tree_evaluator::visit_index_expression(octave::tree_index_expression&) ../libinterp/parse-tree/pt-eval.cc:1252
    #106 0x7f4203496b9c in octave::tree_index_expression::accept(octave::tree_walker&) ../libinterp/parse-tree/pt-idx.h:101
    #107 0x7f42030bf0e6 in octave::tree_evaluator::evaluate(octave::tree_expression*, int) ../libinterp/parse-tree/pt-eval.h:271
    #108 0x7f4203458ce1 in octave::tree_evaluator::visit_simple_assignment(octave::tree_simple_assignment&) ../libinterp/parse-tree/pt-eval.cc:2085
    #109 0x7f4203433964 in octave::tree_simple_assignment::accept(octave::tree_walker&) ../libinterp/parse-tree/pt-assign.h:83
    #110 0x7f42030bf0e6 in octave::tree_evaluator::evaluate(octave::tree_expression*, int) ../libinterp/parse-tree/pt-eval.h:271
    #111 0x7f420345a3d0 in octave::tree_evaluator::visit_statement(octave::tree_statement&) ../libinterp/parse-tree/pt-eval.cc:2209
    #112 0x7f42034ad246 in octave::tree_statement::accept(octave::tree_walker&) ../libinterp/parse-tree/pt-stmt.h:112
    #113 0x7f420345a7d8 in octave::tree_evaluator::visit_statement_list(octave::tree_statement_list&) ../libinterp/parse-tree/pt-eval.cc:2251
    #114 0x7f42030bfb2c in octave::tree_statement_list::accept(octave::tree_walker&) ../libinterp/parse-tree/pt-stmt.h:187
    #115 0x7f420344d848 in octave::tree_evaluator::visit_if_command_list(octave::tree_if_command_list&) ../libinterp/parse-tree/pt-eval.cc:1073
    #116 0x7f4203437bcc in octave::tree_if_command_list::accept(octave::tree_walker&) ../libinterp/parse-tree/pt-select.h:116
    #117 0x7f420344d4d4 in octave::tree_evaluator::visit_if_command(octave::tree_if_command&) ../libinterp/parse-tree/pt-eval.cc:1052
    #118 0x7f42034a9ff4 in octave::tree_if_command::accept(octave::tree_walker&) ../libinterp/parse-tree/pt-select.h:149
    #119 0x7f420345a0ba in octave::tree_evaluator::visit_statement(octave::tree_statement&) ../libinterp/parse-tree/pt-eval.cc:2176
    #120 0x7f42034ad246 in octave::tree_statement::accept(octave::tree_walker&) ../libinterp/parse-tree/pt-stmt.h:112
    #121 0x7f420345a7d8 in octave::tree_evaluator::visit_statement_list(octave::tree_statement_list&) ../libinterp/parse-tree/pt-eval.cc:2251
    #122 0x7f42030bfb2c in octave::tree_statement_list::accept(octave::tree_walker&) ../libinterp/parse-tree/pt-stmt.h:187
    #123 0x7f420325261a in octave_user_function::call(octave::tree_evaluator&, int, octave_value_list const&) ../libinterp/octave-value/ov-usr-fcn.cc:647
    #124 0x7f420344f166 in octave::tree_evaluator::visit_index_expression(octave::tree_index_expression&) ../libinterp/parse-tree/pt-eval.cc:1252
    #125 0x7f4203496b9c in octave::tree_index_expression::accept(octave::tree_walker&) ../libinterp/parse-tree/pt-idx.h:101
    #126 0x7f420325d358 in octave::tree_evaluator::evaluate_n(octave::tree_expression*, int) ../libinterp/parse-tree/pt-eval.h:284
    #127 0x7f42033fa5dc in octave::eval_string(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, bool, int&, int) libinterp/parse-tree/oct-parse.yy:5353
    #128 0x7f4203b9ea28 in octave::interpreter::execute_eval_option_code() ../libinterp/corefcn/interpreter.cc:858
    #129 0x7f4203b9c9fa in octave::interpreter::execute() ../libinterp/corefcn/interpreter.cc:663
    #130 0x7f4204aff95d in octave_interpreter::execute() ../libgui/src/main-window.cc:128
    #131 0x7f4204c96160 in octave_interpreter::qt_static_metacall(QObject*, QMetaObject::Call, int, void**) libgui/src/moc-main-window.cc:86
    #132 0x7f42010908d9 in QObject::event(QEvent*) (/lib64/libQt5Core.so.5+0x26f8d9)
    #133 0x7f42018b35db in QApplicationPrivate::notify_helper(QObject*, QEvent*) (/lib64/libQt5Widgets.so.5+0x15a5db)
    #134 0x7f42018bac73 in QApplication::notify(QObject*, QEvent*) (/lib64/libQt5Widgets.so.5+0x161c73)
    #135 0x7f4201068626 in QCoreApplication::notifyInternal2(QObject*, QEvent*) (/lib64/libQt5Core.so.5+0x247626)
    #136 0x7f420106a85a in QCoreApplicationPrivate::sendPostedEvents(QObject*, int, QThreadData*) (/lib64/libQt5Core.so.5+0x24985a)
    #137 0x7f42010b6dd2  (/lib64/libQt5Core.so.5+0x295dd2)
    #138 0x7f41f0682246 in g_main_context_dispatch (/lib64/libglib-2.0.so.0+0x4a246)
    #139 0x7f41f06825e7  (/lib64/libglib-2.0.so.0+0x4a5e7)
    #140 0x7f41f068267b in g_main_context_iteration (/lib64/libglib-2.0.so.0+0x4a67b)
    #141 0x7f42010b6e4e in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) (/lib64/libQt5Core.so.5+0x295e4e)
    #142 0x7f4201067609 in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) (/lib64/libQt5Core.so.5+0x246609)
    #143 0x7f4200ebf999 in QThread::exec() (/lib64/libQt5Core.so.5+0x9e999)
    #144 0x7f4200ec3c9d  (/lib64/libQt5Core.so.5+0xa2c9d)
    #145 0x7f41f670236c in start_thread (/lib64/libpthread.so.0+0x736c)
    #146 0x7f41f643abbe in __GI___clone (/lib64/libc.so.6+0x110bbe)

Address 0x7f41d2d03640 is located in stack of thread T6 (QThread) at offset 288 in frame
    #0 0x7f4200284858 in octave_set_signal_handler_internal ../liboctave/wrappers/signal-wrappers.c:344

  This frame has 2 object(s):
    [32, 184) 'act'
    [224, 376) 'oact' <== Memory access at offset 288 partially overflows this variable
HINT: this may be a false positive if your program uses some custom stack unwind mechanism or swapcontext
      (longjmp and C++ exceptions are supported)
Thread T6 (QThread) created by T0 here:
    #0 0x7f420544aa2f in pthread_create (/lib64/libasan.so.4+0x37a2f)
    #1 0x7f4200ec3235 in QThread::start(QThread::Priority) (/lib64/libQt5Core.so.5+0xa2235)

SUMMARY: AddressSanitizer: stack-use-after-scope (/lib64/libasan.so.4+0x394b9)
Shadow bytes around the buggy address:
  0x0fe8ba598670: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
  0x0fe8ba598680: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
  0x0fe8ba598690: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
  0x0fe8ba5986a0: 00 00 00 00 f1 f1 f1 f1 00 00 00 00 00 00 00 00
  0x0fe8ba5986b0: 00 00 00 00 00 00 00 00 00 00 00 f2 f2 f2 f2 f2
=>0x0fe8ba5986c0: 00 00 00 00 00 00 00 00[f8]00 00 00 00 00 00 00
  0x0fe8ba5986d0: 00 00 00 f2 f3 f3 f3 f3 00 00 00 00 00 00 00 00
  0x0fe8ba5986e0: 00 00 f1 f1 f1 f1 04 f2 f2 f2 f3 f3 f3 f3 00 00
  0x0fe8ba5986f0: 00 00 00 00 00 00 00 00 00 00 f1 f1 f1 f1 00 00
  0x0fe8ba598700: f2 f2 f3 f3 f3 f3 00 00 00 00 00 00 00 00 00 00
  0x0fe8ba598710: 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
==3383==ABORTING
make[2]: * [Makefile:27802: doc/interpreter/plot-imageproperties.texi] Error 1
make[2]: Leaving directory '/d2/home/dima/src/octave/gcc_asan'
make[1]: * [Makefile:26462: all-recursive] Error 1
make[1]: Leaving directory '/d2/home/dima/src/octave/gcc_asan'
make: * [Makefile:10183: all] Error 2

Dmitri A. Sergatskov <dasergatskov>
Thu 14 Sep 2017 07:35:39 PM UTC, original submission:  

After compiling a version of Octave with the AddressSanitizer enabled (see http://wiki.octave.org/Finding_Memory_Leaks), I tried using the Variable Editor which produced a nasty warning and termination of the program.  The Octave code was


x = magic (3);
openvar x
# Now double-click on a value in the Variable Editor and change it to -1.


The warning was:


==21699==WARNING: AddressSanitizer failed to allocate 0x7f713ac5617d bytes
==21699==AddressSanitizer's allocator is terminating the process instead of returning 0
==21699==If you don't like this behavior set allocator_may_return_null=1
==21699==AddressSanitizer CHECK failed: ../../../../src/libsanitizer/sanitizer_common/sanitizer_allocator.cc:147 "((0)) != (0)" (0x0, 0x0)
    #0 0x7f714014d631  (/usr/lib/x86_64-linux-gnu/libasan.so.2+0xa0631)
    #1 0x7f7140152613 in __sanitizer::CheckFailed(char const*, int, char const*, unsigned long long, unsigned long long) (/usr/lib/x86_64-linux-gnu/libasan.so.2+0xa5613)
    #2 0x7f71400ca425  (/usr/lib/x86_64-linux-gnu/libasan.so.2+0x1d425)
    #3 0x7f7140150865  (/usr/lib/x86_64-linux-gnu/libasan.so.2+0xa3865)
    #4 0x7f71400cfb4d  (/usr/lib/x86_64-linux-gnu/libasan.so.2+0x22b4d)
    #5 0x7f71401464fe in operator new(unsigned long) (/usr/lib/x86_64-linux-gnu/libasan.so.2+0x994fe)
    #6 0x7f713bfc396c in void std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_construct<char*>(char*, char*, std::forward_iterator_tag) (/usr/lib/x86_64-linux-gnu/libstdc++.so.6+0x12196c)
    #7 0x7f713bfc39ce in std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (/usr/lib/x86_64-linux-gnu/libstdc++.so.6+0x1219ce)
    #8 0x7f713e8c2a23 in octave::eval_string_reader::eval_string_reader(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, octave::base_lexer*) libinterp/corefcn/input.h:188
    #9 0x7f713e8c2a7e in octave::input_reader::input_reader(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, octave::base_lexer*) libinterp/corefcn/input.h:217
    #10 0x7f713e8c3d86 in octave::lexer::lexer(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, octave::interpreter*) libinterp/parse-tree/lex.h:741
    #11 0x7f713e8c3ddd in octave::parser::parser(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) libinterp/parse-tree/parse.h:494
    #12 0x7f713e93adc7 in octave::eval_string(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, bool, int&, int) libinterp/parse-tree/oct-parse.yy:5316
    #13 0x7f713e93b5b7 in octave::eval_string(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, bool, int&) libinterp/parse-tree/oct-parse.yy:5385
    #14 0x7f713fbee561 in variable_editor_model::set_data_oct(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, int, int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) libgui/src/variable-editor-model.cc:592
    #15 0x7f713fbf4e66 in octave::action_container::method_arg4_elem<variable_editor_model, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, int, int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&>::run() liboctave/util/action-container.h:282
    #16 0x7f713efa5f4e in octave::event_queue::run_first() libinterp/corefcn/event-queue.h:66
    #17 0x7f713facf778 in octave::action_container::run(unsigned long) (/home/rik/wip/Projects_Mine/octave-dbg/libgui/.libs/liboctgui.so.2+0x249778)
    #18 0x7f713facf7f9 in octave::action_container::run() (/home/rik/wip/Projects_Mine/octave-dbg/libgui/.libs/liboctgui.so.2+0x2497f9)
    #19 0x7f713efa263c in octave_link::do_process_events() libinterp/corefcn/octave-link.cc:105
    #20 0x7f713ee0ea01 in octave_link::process_events(bool) libinterp/corefcn/octave-link.h:82
    #21 0x7f713efa2001 in octave_readline_hook libinterp/corefcn/octave-link.cc:45
    #22 0x7f713d2f0ed4 in octave::command_editor::event_handler() liboctave/util/cmd-edit.cc:1143
    #23 0x7f7134fb11c3 in rl_read_key (/lib/x86_64-linux-gnu/libreadline.so.6+0x2a1c3)
    #24 0x7f7134f9add1 in readline_internal_char (/lib/x86_64-linux-gnu/libreadline.so.6+0x13dd1)
    #25 0x7f7134f9b544 in readline (/lib/x86_64-linux-gnu/libreadline.so.6+0x14544)
    #26 0x7f713d36ca27 in octave_rl_readline liboctave/util/oct-rl-edit.c:215
    #27 0x7f713d2ee29b in octave::gnu_readline::do_readline(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, bool&) liboctave/util/cmd-edit.cc:292
    #28 0x7f713d2f1295 in octave::command_editor::readline(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, bool&) liboctave/util/cmd-edit.cc:1174
    #29 0x7f713edf5a98 in gnu_readline libinterp/corefcn/input.cc:144
    #30 0x7f713edf5d01 in interactive_input libinterp/corefcn/input.cc:189
    #31 0x7f713edf6122 in octave::base_reader::octave_gets[abi:cxx11](bool&) libinterp/corefcn/input.cc:231
    #32 0x7f713edf8cf5 in octave::terminal_reader::get_input[abi:cxx11](bool&) libinterp/corefcn/input.cc:708
    #33 0x7f713e90a0a8 in octave::input_reader::get_input[abi:cxx11](bool&) libinterp/corefcn/input.h:255
    #34 0x7f713e909187 in octave::lexer::fill_flex_buffer(char*, unsigned int) libinterp/parse-tree/lex.ll:3655
    #35 0x7f713e8f9a1b in yy_get_next_buffer libinterp/parse-tree/lex.cc:3451
    #36 0x7f713e8f8742 in octave_lex(OCTAVE_STYPE*, void*) libinterp/parse-tree/lex.cc:3291
    #37 0x7f713e913972 in octave_pull_parse(octave_pstate*, octave::base_parser&) libinterp/parse-tree/oct-parse.cc:2992
    #38 0x7f713e93417b in octave::parser::run() libinterp/parse-tree/oct-parse.yy:4314
    #39 0x7f713ee086a7 in octave::interpreter::main_loop() libinterp/corefcn/interpreter.cc:968
    #40 0x7f713ee06577 in octave::interpreter::execute() libinterp/corefcn/interpreter.cc:695
    #41 0x7f713fb0430a in octave_interpreter::execute() libgui/src/main-window.cc:128
    #42 0x7f713fc10eda in octave_interpreter::qt_static_metacall(QObject*, QMetaObject::Call, int, void**) libgui/src/moc-main-window.cc:86
    #43 0x7f713a29b718 in QObject::event(QEvent*) (/usr/lib/x86_64-linux-gnu/libQt5Core.so.5+0x2af718)
    #44 0x7f713aba3afb in QApplicationPrivate::notify_helper(QObject*, QEvent*) (/usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5+0x15cafb)
    #45 0x7f713aba9035 in QApplication::notify(QObject*, QEvent*) (/usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5+0x162035)
    #46 0x7f713a26e2a7 in QCoreApplication::notifyInternal2(QObject*, QEvent*) (/usr/lib/x86_64-linux-gnu/libQt5Core.so.5+0x2822a7)
    #47 0x7f713a270169 in QCoreApplicationPrivate::sendPostedEvents(QObject*, int, QThreadData*) (/usr/lib/x86_64-linux-gnu/libQt5Core.so.5+0x284169)
    #48 0x7f713a2c2f52  (/usr/lib/x86_64-linux-gnu/libQt5Core.so.5+0x2d6f52)
    #49 0x7f71342b1196 in g_main_context_dispatch (/lib/x86_64-linux-gnu/libglib-2.0.so.0+0x4a196)
    #50 0x7f71342b13ef  (/lib/x86_64-linux-gnu/libglib-2.0.so.0+0x4a3ef)
    #51 0x7f71342b149b in g_main_context_iteration (/lib/x86_64-linux-gnu/libglib-2.0.so.0+0x4a49b)
    #52 0x7f713a2c335e in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) (/usr/lib/x86_64-linux-gnu/libQt5Core.so.5+0x2d735e)
    #53 0x7f713a26bff9 in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) (/usr/lib/x86_64-linux-gnu/libQt5Core.so.5+0x27fff9)
    #54 0x7f713a0949e3 in QThread::exec() (/usr/lib/x86_64-linux-gnu/libQt5Core.so.5+0xa89e3)
    #55 0x7f713a099807  (/usr/lib/x86_64-linux-gnu/libQt5Core.so.5+0xad807)
    #56 0x7f713b6ac6b9 in start_thread (/lib/x86_64-linux-gnu/libpthread.so.0+0x76b9)
    #57 0x7f713b9c93dc in clone (/lib/x86_64-linux-gnu/libc.so.6+0x1073dc)


Since that was only a warning, I did as suggested and set the ASAN_OPTIONS variable to include allocator_may_return_null=1.  When I run again, I get an even worse error.


==22203==ERROR: AddressSanitizer: memcpy-param-overlap: memory ranges [0x000000000000,0x7f4cbc41817c) and [0x6020003219d0, 0xdf6cbc739b4c) overlap
    #0 0x7f4cc18fb662 in __asan_memcpy (/usr/lib/x86_64-linux-gnu/libasan.so.2+0x8c662)
    #1 0x7f4cbd785986 in void std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_construct<char*>(char*, char*, std::forward_iterator_tag) (/usr/lib/x86_64-linux-gnu/libstdc++.so.6+0x121986)
    #2 0x7f4cbd7859ce in std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (/usr/lib/x86_64-linux-gnu/libstdc++.so.6+0x1219ce)
    #3 0x7f4cc0084a23 in octave::eval_string_reader::eval_string_reader(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, octave::base_lexer*) libinterp/corefcn/input.h:188
    #4 0x7f4cc0084a7e in octave::input_reader::input_reader(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, octave::base_lexer*) libinterp/corefcn/input.h:217
    #5 0x7f4cc0085d86 in octave::lexer::lexer(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, octave::interpreter*) libinterp/parse-tree/lex.h:741
    #6 0x7f4cc0085ddd in octave::parser::parser(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) libinterp/parse-tree/parse.h:494
    #7 0x7f4cc00fcdc7 in octave::eval_string(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, bool, int&, int) libinterp/parse-tree/oct-parse.yy:5316
    #8 0x7f4cc00fd5b7 in octave::eval_string(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, bool, int&) libinterp/parse-tree/oct-parse.yy:5385
    #9 0x7f4cc13b0561 in variable_editor_model::set_data_oct(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, int, int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) libgui/src/variable-editor-model.cc:592
    #10 0x7f4cc13b6e66 in octave::action_container::method_arg4_elem<variable_editor_model, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, int, int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&>::run() liboctave/util/action-container.h:282
    #11 0x7f4cc0767f4e in octave::event_queue::run_first() libinterp/corefcn/event-queue.h:66
    #12 0x7f4cc1291778 in octave::action_container::run(unsigned long) (/home/rik/wip/Projects_Mine/octave-dbg/libgui/.libs/liboctgui.so.2+0x249778)
    #13 0x7f4cc12917f9 in octave::action_container::run() (/home/rik/wip/Projects_Mine/octave-dbg/libgui/.libs/liboctgui.so.2+0x2497f9)
    #14 0x7f4cc076463c in octave_link::do_process_events() libinterp/corefcn/octave-link.cc:105
    #15 0x7f4cc05d0a01 in octave_link::process_events(bool) libinterp/corefcn/octave-link.h:82
    #16 0x7f4cc0764001 in octave_readline_hook libinterp/corefcn/octave-link.cc:45
    #17 0x7f4cbeab2ed4 in octave::command_editor::event_handler() liboctave/util/cmd-edit.cc:1143
    #18 0x7f4cb67731c3 in rl_read_key (/lib/x86_64-linux-gnu/libreadline.so.6+0x2a1c3)
    #19 0x7f4cb675cdd1 in readline_internal_char (/lib/x86_64-linux-gnu/libreadline.so.6+0x13dd1)
    #20 0x7f4cb675d544 in readline (/lib/x86_64-linux-gnu/libreadline.so.6+0x14544)
    #21 0x7f4cbeb2ea27 in octave_rl_readline liboctave/util/oct-rl-edit.c:215
    #22 0x7f4cbeab029b in octave::gnu_readline::do_readline(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, bool&) liboctave/util/cmd-edit.cc:292
    #23 0x7f4cbeab3295 in octave::command_editor::readline(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, bool&) liboctave/util/cmd-edit.cc:1174
    #24 0x7f4cc05b7a98 in gnu_readline libinterp/corefcn/input.cc:144
    #25 0x7f4cc05b7d01 in interactive_input libinterp/corefcn/input.cc:189
    #26 0x7f4cc05b8122 in octave::base_reader::octave_gets[abi:cxx11](bool&) libinterp/corefcn/input.cc:231
    #27 0x7f4cc05bacf5 in octave::terminal_reader::get_input[abi:cxx11](bool&) libinterp/corefcn/input.cc:708
    #28 0x7f4cc00cc0a8 in octave::input_reader::get_input[abi:cxx11](bool&) libinterp/corefcn/input.h:255
    #29 0x7f4cc00cb187 in octave::lexer::fill_flex_buffer(char*, unsigned int) libinterp/parse-tree/lex.ll:3655
    #30 0x7f4cc00bba1b in yy_get_next_buffer libinterp/parse-tree/lex.cc:3451
    #31 0x7f4cc00ba742 in octave_lex(OCTAVE_STYPE*, void*) libinterp/parse-tree/lex.cc:3291
    #32 0x7f4cc00d5972 in octave_pull_parse(octave_pstate*, octave::base_parser&) libinterp/parse-tree/oct-parse.cc:2992
    #33 0x7f4cc00f617b in octave::parser::run() libinterp/parse-tree/oct-parse.yy:4314
    #34 0x7f4cc05ca6a7 in octave::interpreter::main_loop() libinterp/corefcn/interpreter.cc:968
    #35 0x7f4cc05c8577 in octave::interpreter::execute() libinterp/corefcn/interpreter.cc:695
    #36 0x7f4cc12c630a in octave_interpreter::execute() libgui/src/main-window.cc:128
    #37 0x7f4cc13d2eda in octave_interpreter::qt_static_metacall(QObject*, QMetaObject::Call, int, void**) libgui/src/moc-main-window.cc:86
    #38 0x7f4cbba5d718 in QObject::event(QEvent*) (/usr/lib/x86_64-linux-gnu/libQt5Core.so.5+0x2af718)
    #39 0x7f4cbc365afb in QApplicationPrivate::notify_helper(QObject*, QEvent*) (/usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5+0x15cafb)
    #40 0x7f4cbc36b035 in QApplication::notify(QObject*, QEvent*) (/usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5+0x162035)
    #41 0x7f4cbba302a7 in QCoreApplication::notifyInternal2(QObject*, QEvent*) (/usr/lib/x86_64-linux-gnu/libQt5Core.so.5+0x2822a7)
    #42 0x7f4cbba32169 in QCoreApplicationPrivate::sendPostedEvents(QObject*, int, QThreadData*) (/usr/lib/x86_64-linux-gnu/libQt5Core.so.5+0x284169)
    #43 0x7f4cbba84f52  (/usr/lib/x86_64-linux-gnu/libQt5Core.so.5+0x2d6f52)
    #44 0x7f4cb5a73196 in g_main_context_dispatch (/lib/x86_64-linux-gnu/libglib-2.0.so.0+0x4a196)
    #45 0x7f4cb5a733ef  (/lib/x86_64-linux-gnu/libglib-2.0.so.0+0x4a3ef)
    #46 0x7f4cb5a7349b in g_main_context_iteration (/lib/x86_64-linux-gnu/libglib-2.0.so.0+0x4a49b)
    #47 0x7f4cbba8535e in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) (/usr/lib/x86_64-linux-gnu/libQt5Core.so.5+0x2d735e)
    #48 0x7f4cbba2dff9 in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) (/usr/lib/x86_64-linux-gnu/libQt5Core.so.5+0x27fff9)
    #49 0x7f4cbb8569e3 in QThread::exec() (/usr/lib/x86_64-linux-gnu/libQt5Core.so.5+0xa89e3)
    #50 0x7f4cbb85b807  (/usr/lib/x86_64-linux-gnu/libQt5Core.so.5+0xad807)
    #51 0x7f4cbce6e6b9 in start_thread (/lib/x86_64-linux-gnu/libpthread.so.0+0x76b9)
    #52 0x7f4cbd18b3dc in clone (/lib/x86_64-linux-gnu/libc.so.6+0x1073dc)

AddressSanitizer can not describe address in more detail (wild memory access suspected).
0x6020003219e0 is located 0 bytes to the right of 16-byte region [0x6020003219d0,0x6020003219e0)
freed by thread T0 here:
    #0 0x7f4cc1909132 in operator delete(void*, unsigned long) (/usr/lib/x86_64-linux-gnu/libasan.so.2+0x9a132)
    #1 0x7f4cbc37397a  (/usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5+0x16a97a)
    #2 0x7f4cbc41817b  (/usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5+0x20f17b)

previously allocated by thread T0 here:
    #0 0x7f4cc1908532 in operator new(unsigned long) (/usr/lib/x86_64-linux-gnu/libasan.so.2+0x99532)
    #1 0x7f4cbc021ece in QRegion::copy() const (/usr/lib/x86_64-linux-gnu/libQt5Gui.so.5+0x3a2ece)

Thread T5 (QThread) created by T0 here:
    #0 0x7f4cc18a5253 in pthread_create (/usr/lib/x86_64-linux-gnu/libasan.so.2+0x36253)
    #1 0x7f4cbb85ad58 in QThread::start(QThread::Priority) (/usr/lib/x86_64-linux-gnu/libQt5Core.so.5+0xacd58)

SUMMARY: AddressSanitizer: memcpy-param-overlap ??:0 __asan_memcpy




Rik <rik5>
Group administrator

 

(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 dasergatskov (Posted a comment)
  • -email is unavailable- added by rik5 (Submitted the item)
  •  

    There are 0 votes so far. Votes easily highlight which items people would like to see resolved in priority, independently of the priority of the item set by tracker managers.

    Only group members can vote.

     

    Follow 3 latest changes.

    Date Changed by Updated Field Previous Value => Replaced by
    2017-12-11 rik5 StatusReady For Test Fixed
        Open/ClosedOpen Closed
    2017-12-11 jwe StatusNone Ready For Test

    Back to the top

    Powered by Savane 3.13-d3ae.
    Corresponding source code