[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Octave-bug-tracker] [bug #62207] segfault in bug-35881/bug-35881.tst in
From: |
Dmitri A. Sergatskov |
Subject: |
[Octave-bug-tracker] [bug #62207] segfault in bug-35881/bug-35881.tst in 32-bit ARM and MIPS |
Date: |
Fri, 25 Mar 2022 23:35:04 -0400 (EDT) |
Follow-up Comment #16, bug #62207 (project octave):
This is what I see (compiled with debug and ASAN flags) on
Debian armel chroot:
octave:3> cd ../test/bug-35881
octave:4> test bug-35881.tst
=================================================================
==400363==ERROR: AddressSanitizer: stack-use-after-scope on address 0xff9ce494
at pc 0xf79406bc bp 0xff9ce46c sp 0xff9ce040
WRITE of size 12 at 0xff9ce494 thread T0
#0 0xf79406b8 in __interceptor_sigaltstack
../../../../src/libsanitizer/sanitizer_common/sanitizer_common_interceptors.inc:9986
#1 0xf79a6548 in __asan::PlatformUnpoisonStacks()
../../../../src/libsanitizer/asan/asan_posix.cpp:44
#2 0xf79aba84 in __asan_handle_no_return
../../../../src/libsanitizer/asan/asan_rtl.cpp:612
#3 0xf63becb8 in
octave::tree_evaluator::visit_statement(octave::tree_statement&)
../libinterp/parse-tree/pt-eval.cc:3842
#4 0xf6452a68 in octave::tree_statement::accept(octave::tree_walker&)
../libinterp/parse-tree/pt-stmt.h:124
#5 0xf63bf1a4 in
octave::tree_evaluator::visit_statement_list(octave::tree_statement_list&)
../libinterp/parse-tree/pt-eval.cc:3866
#6 0xf5d87334 in octave::tree_statement_list::accept(octave::tree_walker&)
../libinterp/parse-tree/pt-stmt.h:201
#7 0xf63bb9c8 in
octave::tree_evaluator::execute_user_function(octave_user_function&, int,
octave_value_list const&) ../libinterp/parse-tree/pt-eval.cc:3512
#8 0xf60d0c74 in octave_user_function::execute(octave::tree_evaluator&,
int, octave_value_list const&) ../libinterp/octave-value/ov-usr-fcn.cc:495
#9 0xf60d0ae4 in octave_user_function::call(octave::tree_evaluator&, int,
octave_value_list const&) ../libinterp/octave-value/ov-usr-fcn.cc:488
#10 0xf6428ebc in
octave::tree_index_expression::evaluate_n(octave::tree_evaluator&, int)
../libinterp/parse-tree/pt-idx.cc:408
#11 0xf63a2f28 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:1052
#12 0xf63a4da4 in
octave::tree_evaluator::evalin(std::__cxx11::basic_string<char,
std::char_traits<char>, std::allocator<char> > const&,
std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>
> const&, int) ../libinterp/parse-tree/pt-eval.cc:1179
#13 0xf6e06e40 in
octave::interpreter::evalin(std::__cxx11::basic_string<char,
std::char_traits<char>, std::allocator<char> > const&,
std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>
> const&, int) ../libinterp/corefcn/interpreter.cc:1516
#14 0xf6315f1c in octave::Fevalin(octave::interpreter&, octave_value_list
const&, int) ../libinterp/parse-tree/oct-parse.yy:6553
#15 0xf5e7d8b0 in octave_builtin::execute(octave::tree_evaluator&, int,
octave_value_list const&) ../libinterp/octave-value/ov-builtin.cc:65
#16 0xf5f9bfcc in octave_function::call(octave::tree_evaluator&, int,
octave_value_list const&) ../libinterp/octave-value/ov-fcn.cc:57
#17 0xf6428ebc in
octave::tree_index_expression::evaluate_n(octave::tree_evaluator&, int)
../libinterp/parse-tree/pt-idx.cc:408
#18 0xf64302e0 in
octave::tree_index_expression::evaluate(octave::tree_evaluator&, int)
../libinterp/parse-tree/pt-idx.h:108
#19 0xf63be330 in
octave::tree_evaluator::visit_statement(octave::tree_statement&)
../libinterp/parse-tree/pt-eval.cc:3781
#20 0xf6452a68 in octave::tree_statement::accept(octave::tree_walker&)
../libinterp/parse-tree/pt-stmt.h:124
#21 0xf63bf1a4 in
octave::tree_evaluator::visit_statement_list(octave::tree_statement_list&)
../libinterp/parse-tree/pt-eval.cc:3866
#22 0xf5d87334 in
octave::tree_statement_list::accept(octave::tree_walker&)
../libinterp/parse-tree/pt-stmt.h:201
#23 0xf63c0100 in
octave::tree_evaluator::visit_try_catch_command(octave::tree_try_catch_command&)
../libinterp/parse-tree/pt-eval.cc:3981
#24 0xf64100b8 in
octave::tree_try_catch_command::accept(octave::tree_walker&)
../libinterp/parse-tree/pt-except.h:84
#25 0xf63bdf90 in
octave::tree_evaluator::visit_statement(octave::tree_statement&)
../libinterp/parse-tree/pt-eval.cc:3756
#26 0xf6452a68 in octave::tree_statement::accept(octave::tree_walker&)
../libinterp/parse-tree/pt-stmt.h:124
#27 0xf63bf1a4 in
octave::tree_evaluator::visit_statement_list(octave::tree_statement_list&)
../libinterp/parse-tree/pt-eval.cc:3866
#28 0xf5d87334 in
octave::tree_statement_list::accept(octave::tree_walker&)
../libinterp/parse-tree/pt-stmt.h:201
#29 0xf63bd03c in
octave::tree_evaluator::visit_if_command_list(octave::tree_if_command_list&)
../libinterp/parse-tree/pt-eval.cc:3629
#30 0xf63dbd14 in
octave::tree_if_command_list::accept(octave::tree_walker&)
../libinterp/parse-tree/pt-select.h:118
#31 0xf63bcaa4 in
octave::tree_evaluator::visit_if_command(octave::tree_if_command&)
../libinterp/parse-tree/pt-eval.cc:3607
#32 0xf644e16c in octave::tree_if_command::accept(octave::tree_walker&)
../libinterp/parse-tree/pt-select.h:151
#33 0xf63bdf90 in
octave::tree_evaluator::visit_statement(octave::tree_statement&)
../libinterp/parse-tree/pt-eval.cc:3756
#34 0xf6452a68 in octave::tree_statement::accept(octave::tree_walker&)
../libinterp/parse-tree/pt-stmt.h:124
#35 0xf63bf1a4 in
octave::tree_evaluator::visit_statement_list(octave::tree_statement_list&)
../libinterp/parse-tree/pt-eval.cc:3866
#36 0xf5d87334 in
octave::tree_statement_list::accept(octave::tree_walker&)
../libinterp/parse-tree/pt-stmt.h:201
#37 0xf63bb9c8 in
octave::tree_evaluator::execute_user_function(octave_user_function&, int,
octave_value_list const&) ../libinterp/parse-tree/pt-eval.cc:3512
#38 0xf60d0c74 in octave_user_function::execute(octave::tree_evaluator&,
int, octave_value_list const&) ../libinterp/octave-value/ov-usr-fcn.cc:495
#39 0xf60d0ae4 in octave_user_function::call(octave::tree_evaluator&, int,
octave_value_list const&) ../libinterp/octave-value/ov-usr-fcn.cc:488
#40 0xf6428ebc in
octave::tree_index_expression::evaluate_n(octave::tree_evaluator&, int)
../libinterp/parse-tree/pt-idx.cc:408
#41 0xf64302e0 in
octave::tree_index_expression::evaluate(octave::tree_evaluator&, int)
../libinterp/parse-tree/pt-idx.h:108
#42 0xf63be330 in
octave::tree_evaluator::visit_statement(octave::tree_statement&)
../libinterp/parse-tree/pt-eval.cc:3781
#43 0xf6452a68 in octave::tree_statement::accept(octave::tree_walker&)
../libinterp/parse-tree/pt-stmt.h:124
#44 0xf63bf1a4 in
octave::tree_evaluator::visit_statement_list(octave::tree_statement_list&)
../libinterp/parse-tree/pt-eval.cc:3866
#45 0xf5d87334 in
octave::tree_statement_list::accept(octave::tree_walker&)
../libinterp/parse-tree/pt-stmt.h:201
#46 0xf63bb9c8 in
octave::tree_evaluator::execute_user_function(octave_user_function&, int,
octave_value_list const&) ../libinterp/parse-tree/pt-eval.cc:3512
#47 0xf60d0c74 in octave_user_function::execute(octave::tree_evaluator&,
int, octave_value_list const&) ../libinterp/octave-value/ov-usr-fcn.cc:495
#48 0xf60d0ae4 in octave_user_function::call(octave::tree_evaluator&, int,
octave_value_list const&) ../libinterp/octave-value/ov-usr-fcn.cc:488
#49 0xf6428ebc in
octave::tree_index_expression::evaluate_n(octave::tree_evaluator&, int)
../libinterp/parse-tree/pt-idx.cc:408
#50 0xf63a2f28 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:1052
#51 0xf63a3c78 in
octave::tree_evaluator::eval(std::__cxx11::basic_string<char,
std::char_traits<char>, std::allocator<char> > const&, int)
../libinterp/parse-tree/pt-eval.cc:1111
#52 0xf6e06c50 in
octave::interpreter::eval(std::__cxx11::basic_string<char,
std::char_traits<char>, std::allocator<char> > const&, int)
../libinterp/corefcn/interpreter.cc:1502
#53 0xf63152a4 in octave::Feval(octave::interpreter&, octave_value_list
const&, int) ../libinterp/parse-tree/oct-parse.yy:6432
#54 0xf5e7d8b0 in octave_builtin::execute(octave::tree_evaluator&, int,
octave_value_list const&) ../libinterp/octave-value/ov-builtin.cc:65
#55 0xf5f9bfcc in octave_function::call(octave::tree_evaluator&, int,
octave_value_list const&) ../libinterp/octave-value/ov-fcn.cc:57
#56 0xf6428ebc in
octave::tree_index_expression::evaluate_n(octave::tree_evaluator&, int)
../libinterp/parse-tree/pt-idx.cc:408
#57 0xf64302e0 in
octave::tree_index_expression::evaluate(octave::tree_evaluator&, int)
../libinterp/parse-tree/pt-idx.h:108
#58 0xf63be330 in
octave::tree_evaluator::visit_statement(octave::tree_statement&)
../libinterp/parse-tree/pt-eval.cc:3781
#59 0xf6452a68 in octave::tree_statement::accept(octave::tree_walker&)
../libinterp/parse-tree/pt-stmt.h:124
#60 0xf63bf1a4 in
octave::tree_evaluator::visit_statement_list(octave::tree_statement_list&)
../libinterp/parse-tree/pt-eval.cc:3866
#61 0xf5d87334 in
octave::tree_statement_list::accept(octave::tree_walker&)
../libinterp/parse-tree/pt-stmt.h:201
#62 0xf63c0100 in
octave::tree_evaluator::visit_try_catch_command(octave::tree_try_catch_command&)
../libinterp/parse-tree/pt-eval.cc:3981
#63 0xf64100b8 in
octave::tree_try_catch_command::accept(octave::tree_walker&)
../libinterp/parse-tree/pt-except.h:84
#64 0xf63bdf90 in
octave::tree_evaluator::visit_statement(octave::tree_statement&)
../libinterp/parse-tree/pt-eval.cc:3756
#65 0xf6452a68 in octave::tree_statement::accept(octave::tree_walker&)
../libinterp/parse-tree/pt-stmt.h:124
#66 0xf63bf1a4 in
octave::tree_evaluator::visit_statement_list(octave::tree_statement_list&)
../libinterp/parse-tree/pt-eval.cc:3866
#67 0xf5d87334 in
octave::tree_statement_list::accept(octave::tree_walker&)
../libinterp/parse-tree/pt-stmt.h:201
#68 0xf63bd03c in
octave::tree_evaluator::visit_if_command_list(octave::tree_if_command_list&)
../libinterp/parse-tree/pt-eval.cc:3629
#69 0xf63dbd14 in
octave::tree_if_command_list::accept(octave::tree_walker&)
../libinterp/parse-tree/pt-select.h:118
#70 0xf63bcaa4 in
octave::tree_evaluator::visit_if_command(octave::tree_if_command&)
../libinterp/parse-tree/pt-eval.cc:3607
#71 0xf644e16c in octave::tree_if_command::accept(octave::tree_walker&)
../libinterp/parse-tree/pt-select.h:151
#72 0xf63bdf90 in
octave::tree_evaluator::visit_statement(octave::tree_statement&)
../libinterp/parse-tree/pt-eval.cc:3756
#73 0xf6452a68 in octave::tree_statement::accept(octave::tree_walker&)
../libinterp/parse-tree/pt-stmt.h:124
#74 0xf63bf1a4 in
octave::tree_evaluator::visit_statement_list(octave::tree_statement_list&)
../libinterp/parse-tree/pt-eval.cc:3866
#75 0xf5d87334 in
octave::tree_statement_list::accept(octave::tree_walker&)
../libinterp/parse-tree/pt-stmt.h:201
#76 0xf63c1aa0 in
octave::tree_evaluator::visit_unwind_protect_command(octave::tree_unwind_protect_command&)
../libinterp/parse-tree/pt-eval.cc:4126
#77 0xf64101b4 in
octave::tree_unwind_protect_command::accept(octave::tree_walker&)
../libinterp/parse-tree/pt-except.h:151
#78 0xf63bdf90 in
octave::tree_evaluator::visit_statement(octave::tree_statement&)
../libinterp/parse-tree/pt-eval.cc:3756
#79 0xf6452a68 in octave::tree_statement::accept(octave::tree_walker&)
../libinterp/parse-tree/pt-stmt.h:124
#80 0xf63bf1a4 in
octave::tree_evaluator::visit_statement_list(octave::tree_statement_list&)
../libinterp/parse-tree/pt-eval.cc:3866
#81 0xf5d87334 in
octave::tree_statement_list::accept(octave::tree_walker&)
../libinterp/parse-tree/pt-stmt.h:201
#82 0xf63b7918 in
octave::tree_evaluator::visit_simple_for_command(octave::tree_simple_for_command&)
../libinterp/parse-tree/pt-eval.cc:3166
#83 0xf643b414 in
octave::tree_simple_for_command::accept(octave::tree_walker&)
../libinterp/parse-tree/pt-loop.h:191
#84 0xf63bdf90 in
octave::tree_evaluator::visit_statement(octave::tree_statement&)
../libinterp/parse-tree/pt-eval.cc:3756
#85 0xf6452a68 in octave::tree_statement::accept(octave::tree_walker&)
../libinterp/parse-tree/pt-stmt.h:124
#86 0xf63bf1a4 in
octave::tree_evaluator::visit_statement_list(octave::tree_statement_list&)
../libinterp/parse-tree/pt-eval.cc:3866
#87 0xf5d87334 in
octave::tree_statement_list::accept(octave::tree_walker&)
../libinterp/parse-tree/pt-stmt.h:201
#88 0xf63bb9c8 in
octave::tree_evaluator::execute_user_function(octave_user_function&, int,
octave_value_list const&) ../libinterp/parse-tree/pt-eval.cc:3512
#89 0xf60d0c74 in octave_user_function::execute(octave::tree_evaluator&,
int, octave_value_list const&) ../libinterp/octave-value/ov-usr-fcn.cc:495
#90 0xf60d0ae4 in octave_user_function::call(octave::tree_evaluator&, int,
octave_value_list const&) ../libinterp/octave-value/ov-usr-fcn.cc:488
#91 0xf6428ebc in
octave::tree_index_expression::evaluate_n(octave::tree_evaluator&, int)
../libinterp/parse-tree/pt-idx.cc:408
#92 0xf64302e0 in
octave::tree_index_expression::evaluate(octave::tree_evaluator&, int)
../libinterp/parse-tree/pt-idx.h:108
#93 0xf63be330 in
octave::tree_evaluator::visit_statement(octave::tree_statement&)
../libinterp/parse-tree/pt-eval.cc:3781
#94 0xf6452a68 in octave::tree_statement::accept(octave::tree_walker&)
../libinterp/parse-tree/pt-stmt.h:124
#95 0xf63bf1a4 in
octave::tree_evaluator::visit_statement_list(octave::tree_statement_list&)
../libinterp/parse-tree/pt-eval.cc:3866
#96 0xf5d87334 in
octave::tree_statement_list::accept(octave::tree_walker&)
../libinterp/parse-tree/pt-stmt.h:201
#97 0xf63a268c in
octave::tree_evaluator::eval(std::shared_ptr<octave::tree_statement_list>&,
bool) ../libinterp/parse-tree/pt-eval.cc:984
#98 0xf63a0ddc in octave::tree_evaluator::repl()
../libinterp/parse-tree/pt-eval.cc:803
#99 0xf6e0533c in octave::interpreter::main_loop()
../libinterp/corefcn/interpreter.cc:1340
#100 0xf6df5fcc in octave::interpreter::execute()
../libinterp/corefcn/interpreter.cc:908
#101 0xf511306c in octave::cli_application::execute()
../libinterp/octave.cc:425
#102 0x802840 in main ../src/main-cli.cc:121
#103 0xf2690e20 in __libc_start_main csu/libc-start.c:332
Address 0xff9ce494 is located in stack of thread T0
SUMMARY: AddressSanitizer: stack-use-after-scope
../../../../src/libsanitizer/sanitizer_common/sanitizer_common_interceptors.inc:9986
in __interceptor_sigaltstack
Shadow bytes around the buggy address:
0x3ff39c40: f8 00 00 00 00 00 f8 f8 00 00 f8 f8 00 00 00 00
0x3ff39c50: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
0x3ff39c60: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
0x3ff39c70: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
0x3ff39c80: 00 00 00 00 00 00 00 00 00 00 00 00 f8 f8 f8 f8
=>0x3ff39c90: f8 f8[f8]f8 00 00 00 00 00 00 00 00 00 00 00 00
0x3ff39ca0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 f8 00
0x3ff39cb0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
0x3ff39cc0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
0x3ff39cd0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
0x3ff39ce0: 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
Shadow gap: cc
==400363==ABORTING
_______________________________________________________
Reply to this item at:
<https://savannah.gnu.org/bugs/?62207>
_______________________________________________
Message sent via Savannah
https://savannah.gnu.org/
- [Octave-bug-tracker] [bug #62207] segfault in bug-35881/bug-35881.tst in 32-bit ARM and MIPS, (continued)
- [Octave-bug-tracker] [bug #62207] segfault in bug-35881/bug-35881.tst in 32-bit ARM and MIPS, Sébastien Villemot, 2022/03/23
- [Octave-bug-tracker] [bug #62207] segfault in bug-35881/bug-35881.tst in 32-bit ARM and MIPS, John W. Eaton, 2022/03/24
- [Octave-bug-tracker] [bug #62207] segfault in bug-35881/bug-35881.tst in 32-bit ARM and MIPS, Markus Mützel, 2022/03/24
- [Octave-bug-tracker] [bug #62207] segfault in bug-35881/bug-35881.tst in 32-bit ARM and MIPS, Arun Giridhar, 2022/03/24
- [Octave-bug-tracker] [bug #62207] segfault in bug-35881/bug-35881.tst in 32-bit ARM and MIPS, Sébastien Villemot, 2022/03/25
- [Octave-bug-tracker] [bug #62207] segfault in bug-35881/bug-35881.tst in 32-bit ARM and MIPS, Arun Giridhar, 2022/03/25
- [Octave-bug-tracker] [bug #62207] segfault in bug-35881/bug-35881.tst in 32-bit ARM and MIPS, Sébastien Villemot, 2022/03/25
- [Octave-bug-tracker] [bug #62207] segfault in bug-35881/bug-35881.tst in 32-bit ARM and MIPS, Arun Giridhar, 2022/03/25
- [Octave-bug-tracker] [bug #62207] segfault in bug-35881/bug-35881.tst in 32-bit ARM and MIPS, Sébastien Villemot, 2022/03/25
- [Octave-bug-tracker] [bug #62207] segfault in bug-35881/bug-35881.tst in 32-bit ARM and MIPS, Sébastien Villemot, 2022/03/25
- [Octave-bug-tracker] [bug #62207] segfault in bug-35881/bug-35881.tst in 32-bit ARM and MIPS,
Dmitri A. Sergatskov <=
- [Octave-bug-tracker] [bug #62207] segfault in bug-35881/bug-35881.tst in 32-bit ARM and MIPS, John W. Eaton, 2022/03/26
- [Octave-bug-tracker] [bug #62207] segfault in bug-35881/bug-35881.tst in 32-bit ARM and MIPS, Dmitri A. Sergatskov, 2022/03/26
- [Octave-bug-tracker] [bug #62207] segfault in bug-35881/bug-35881.tst in 32-bit ARM and MIPS, Dmitri A. Sergatskov, 2022/03/26
- [Octave-bug-tracker] [bug #62207] segfault in bug-35881/bug-35881.tst in 32-bit ARM and MIPS, Dmitri A. Sergatskov, 2022/03/26
- [Octave-bug-tracker] [bug #62207] segfault in bug-35881/bug-35881.tst in 32-bit ARM and MIPS, John W. Eaton, 2022/03/26
- [Octave-bug-tracker] [bug #62207] segfault in bug-35881/bug-35881.tst in 32-bit ARM and MIPS, Dmitri A. Sergatskov, 2022/03/26
- [Octave-bug-tracker] [bug #62207] segfault in bug-35881/bug-35881.tst in 32-bit ARM and MIPS, Dmitri A. Sergatskov, 2022/03/26
- [Octave-bug-tracker] [bug #62207] segfault in bug-35881/bug-35881.tst in 32-bit ARM and MIPS, Dmitri A. Sergatskov, 2022/03/26