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

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

[Octave-bug-tracker] [bug #57177] signal: munmap_chunk(): invalid pointe


From: Orion Poplawski
Subject: [Octave-bug-tracker] [bug #57177] signal: munmap_chunk(): invalid pointer in test with 64bit indexes
Date: Tue, 5 Nov 2019 23:48:42 -0500 (EST)
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Firefox/68.0

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

                 Summary: signal: munmap_chunk(): invalid pointer in test with
64bit indexes
                 Project: GNU Octave
            Submitted by: opoplawski
            Submitted on: Wed 06 Nov 2019 04:48:40 AM UTC
                Category: Octave Forge Package
                Severity: 3 - Normal
                Priority: 5 - Normal
              Item Group: Segfault, Bus Error, etc.
                  Status: None
             Assigned to: None
         Originator Name: 
        Originator Email: 
             Open/Closed: Open
         Discussion Lock: Any
                 Release: 5.1.0
        Operating System: GNU/Linux

    _______________________________________________________

Details:

We have enabled 64bit indexes and LTO optimization in the octave package in
Fedora rawhide.  We are now seeing test failures in the signal package:

  butter.m ....................................................munmap_chunk():
invalid pointer
fatal: caught signal Aborted -- stopping myself...


valgrind reports:

==191900== Invalid free() / delete / delete[] / realloc()
==191900==    at 0x483B5C6: operator delete[](void*)
(vg_replace_malloc.c:651)
==191900==    by 0x48651E5: F__lti_input_idx__(octave_value_list const&, int)
(in
/usr/lib64/octave/packages/control-3.2.0/x86_64-redhat-linux-gnu-api-v53/__control_helper_functions__.oct)
==191900==    by 0x5415AF1: octave_builtin::call(octave::tree_evaluator&, int,
octave_value_list const&) (ov-builtin.cc:65)
==191900==    by 0x52BCDA9:
octave::tree_evaluator::visit_index_expression(octave::tree_index_expression&)
(pt-eval.cc:2008)
==191900==    by 0x52D010B:
octave::tree_evaluator::evaluate_n(octave::tree_expression*, int)
(pt-eval.h:343)
==191900==    by 0x52BD61B:
octave::tree_evaluator::visit_multi_assignment(octave::tree_multi_assignment&)
(pt-eval.cc:2320)
==191900==    by 0x53E771F:
octave::tree_evaluator::evaluate(octave::tree_expression*, int)
(pt-eval.h:312)
==191900==    by 0x52B8DCC:
octave::tree_evaluator::visit_statement(octave::tree_statement&)
(pt-eval.cc:2776)
==191900==    by 0x52B2903:
octave::tree_evaluator::visit_statement_list(octave::tree_statement_list&)
(pt-stmt.h:119)
==191900==    by 0x52C06CC:
octave::tree_evaluator::execute_user_function(octave_user_function&, int,
octave_value_list const&) (pt-stmt.h:194)
==191900==    by 0x533DF06:
octave_user_function::call(octave::tree_evaluator&, int, octave_value_list
const&) (ov-usr-fcn.cc:455)
==191900==    by 0x52BCDA9:
octave::tree_evaluator::visit_index_expression(octave::tree_index_expression&)
(pt-eval.cc:2008)
==191900==  Address 0xf743898 is 8 bytes inside a block of size 32 alloc'd
==191900==    at 0x483A593: operator new[](unsigned long)
(vg_replace_malloc.c:433)
==191900==    by 0x53F707F: UnknownInlinedFun (dim-vector.h:101)
==191900==    by 0x53F707F: UnknownInlinedFun (dim-vector.h:202)
==191900==    by 0x53F707F: UnknownInlinedFun (Array.h:384)
==191900==    by 0x53F707F: UnknownInlinedFun (ovl.h:62)
==191900==    by 0x53F707F: octave_value_list::slice(long, long, bool) const
(ovl.h:121)
==191900==    by 0x5346F7D:
octave_user_function::all_va_args(octave_value_list const&)
(ov-usr-fcn.cc:446)
==191900==    by 0x52C0195:
octave::tree_evaluator::execute_user_function(octave_user_function&, int,
octave_value_list const&) (pt-eval.cc:1606)
==191900==    by 0x533DF06:
octave_user_function::call(octave::tree_evaluator&, int, octave_value_list
const&) (ov-usr-fcn.cc:455)
==191900==    by 0x52BCDA9:
octave::tree_evaluator::visit_index_expression(octave::tree_index_expression&)
(pt-eval.cc:2008)
==191900==    by 0x52CD37B:
octave::tree_evaluator::convert_to_const_vector(octave::tree_argument_list*,
octave_value const*) (pt-eval.h:312)
==191900==    by 0x52BD074:
octave::tree_evaluator::visit_index_expression(octave::tree_index_expression&)
(pt-eval.cc:1993)
==191900==    by 0x52D010B:
octave::tree_evaluator::evaluate_n(octave::tree_expression*, int)
(pt-eval.h:343)
==191900==    by 0x52BD61B:
octave::tree_evaluator::visit_multi_assignment(octave::tree_multi_assignment&)
(pt-eval.cc:2320)
==191900==    by 0x53E771F:
octave::tree_evaluator::evaluate(octave::tree_expression*, int)
(pt-eval.h:312)
==191900==    by 0x52B8DCC:
octave::tree_evaluator::visit_statement(octave::tree_statement&)
(pt-eval.cc:2776)
==191900== 
==191900== Conditional jump or move depends on uninitialised value(s)
==191900==    at 0x625584B: Range::max() const (Range.cc:230)
==191900==    by 0x6256EAB: Range::limit_internal() const (Range.cc:605)
==191900==    by 0x48652BE: F__lti_input_idx__(octave_value_list const&, int)
(in
/usr/lib64/octave/packages/control-3.2.0/x86_64-redhat-linux-gnu-api-v53/__control_helper_functions__.oct)
==191900==    by 0x5415AF1: octave_builtin::call(octave::tree_evaluator&, int,
octave_value_list const&) (ov-builtin.cc:65)
==191900==    by 0x52BCDA9:
octave::tree_evaluator::visit_index_expression(octave::tree_index_expression&)
(pt-eval.cc:2008)
==191900==    by 0x52D010B:
octave::tree_evaluator::evaluate_n(octave::tree_expression*, int)
(pt-eval.h:343)
==191900==    by 0x52BD61B:
octave::tree_evaluator::visit_multi_assignment(octave::tree_multi_assignment&)
(pt-eval.cc:2320)
==191900==    by 0x53E771F:
octave::tree_evaluator::evaluate(octave::tree_expression*, int)
(pt-eval.h:312)
==191900==    by 0x52B8DCC:
octave::tree_evaluator::visit_statement(octave::tree_statement&)
(pt-eval.cc:2776)
==191900==    by 0x52B2903:
octave::tree_evaluator::visit_statement_list(octave::tree_statement_list&)
(pt-stmt.h:119)
==191900==    by 0x52C06CC:
octave::tree_evaluator::execute_user_function(octave_user_function&, int,
octave_value_list const&) (pt-stmt.h:194)
==191900==    by 0x533DF06:
octave_user_function::call(octave::tree_evaluator&, int, octave_value_list
const&) (ov-usr-fcn.cc:455)
==191900== 
==191900== Conditional jump or move depends on uninitialised value(s)
==191900==    at 0x7756838: round (in /usr/lib64/libm-2.30.9000.so)
==191900==    by 0x48652BE: F__lti_input_idx__(octave_value_list const&, int)
(in
/usr/lib64/octave/packages/control-3.2.0/x86_64-redhat-linux-gnu-api-v53/__control_helper_functions__.oct)
==191900==    by 0x5415AF1: octave_builtin::call(octave::tree_evaluator&, int,
octave_value_list const&) (ov-builtin.cc:65)
==191900==    by 0x52BCDA9:
octave::tree_evaluator::visit_index_expression(octave::tree_index_expression&)
(pt-eval.cc:2008)
==191900==    by 0x52D010B:
octave::tree_evaluator::evaluate_n(octave::tree_expression*, int)
(pt-eval.h:343)
==191900==    by 0x52BD61B:
octave::tree_evaluator::visit_multi_assignment(octave::tree_multi_assignment&)
(pt-eval.cc:2320)
==191900==    by 0x53E771F:
octave::tree_evaluator::evaluate(octave::tree_expression*, int)
(pt-eval.h:312)
==191900==    by 0x52B8DCC:
octave::tree_evaluator::visit_statement(octave::tree_statement&)
(pt-eval.cc:2776)
==191900==    by 0x52B2903:
octave::tree_evaluator::visit_statement_list(octave::tree_statement_list&)
(pt-stmt.h:119)
==191900==    by 0x52C06CC:
octave::tree_evaluator::execute_user_function(octave_user_function&, int,
octave_value_list const&) (pt-stmt.h:194)
==191900==    by 0x533DF06:
octave_user_function::call(octave::tree_evaluator&, int, octave_value_list
const&) (ov-usr-fcn.cc:455)
==191900==    by 0x52BCDA9:
octave::tree_evaluator::visit_index_expression(octave::tree_index_expression&)
(pt-eval.cc:2008)
==191900== 
==191900== Conditional jump or move depends on uninitialised value(s)
==191900==    at 0x775683D: round (in /usr/lib64/libm-2.30.9000.so)
==191900==    by 0x48652BE: F__lti_input_idx__(octave_value_list const&, int)
(in
/usr/lib64/octave/packages/control-3.2.0/x86_64-redhat-linux-gnu-api-v53/__control_helper_functions__.oct)
==191900==    by 0x5415AF1: octave_builtin::call(octave::tree_evaluator&, int,
octave_value_list const&) (ov-builtin.cc:65)
==191900==    by 0x52BCDA9:
octave::tree_evaluator::visit_index_expression(octave::tree_index_expression&)
(pt-eval.cc:2008)
==191900==    by 0x52D010B:
octave::tree_evaluator::evaluate_n(octave::tree_expression*, int)
(pt-eval.h:343)
==191900==    by 0x52BD61B:
octave::tree_evaluator::visit_multi_assignment(octave::tree_multi_assignment&)
(pt-eval.cc:2320)
==191900==    by 0x53E771F:
octave::tree_evaluator::evaluate(octave::tree_expression*, int)
(pt-eval.h:312)
==191900==    by 0x52B8DCC:
octave::tree_evaluator::visit_statement(octave::tree_statement&)
(pt-eval.cc:2776)
==191900==    by 0x52B2903:
octave::tree_evaluator::visit_statement_list(octave::tree_statement_list&)
(pt-stmt.h:119)
==191900==    by 0x52C06CC:
octave::tree_evaluator::execute_user_function(octave_user_function&, int,
octave_value_list const&) (pt-stmt.h:194)
==191900==    by 0x533DF06:
octave_user_function::call(octave::tree_evaluator&, int, octave_value_list
const&) (ov-usr-fcn.cc:455)
==191900==    by 0x52BCDA9:
octave::tree_evaluator::visit_index_expression(octave::tree_index_expression&)
(pt-eval.cc:2008)
==191900== 
==191900== Conditional jump or move depends on uninitialised value(s)
==191900==    at 0x775684F: round (in /usr/lib64/libm-2.30.9000.so)
==191900==    by 0x48652BE: F__lti_input_idx__(octave_value_list const&, int)
(in
/usr/lib64/octave/packages/control-3.2.0/x86_64-redhat-linux-gnu-api-v53/__control_helper_functions__.oct)
==191900==    by 0x5415AF1: octave_builtin::call(octave::tree_evaluator&, int,
octave_value_list const&) (ov-builtin.cc:65)
==191900==    by 0x52BCDA9:
octave::tree_evaluator::visit_index_expression(octave::tree_index_expression&)
(pt-eval.cc:2008)
==191900==    by 0x52D010B:
octave::tree_evaluator::evaluate_n(octave::tree_expression*, int)
(pt-eval.h:343)
==191900==    by 0x52BD61B:
octave::tree_evaluator::visit_multi_assignment(octave::tree_multi_assignment&)
(pt-eval.cc:2320)
==191900==    by 0x53E771F:
octave::tree_evaluator::evaluate(octave::tree_expression*, int)
(pt-eval.h:312)
==191900==    by 0x52B8DCC:
octave::tree_evaluator::visit_statement(octave::tree_statement&)
(pt-eval.cc:2776)
==191900==    by 0x52B2903:
octave::tree_evaluator::visit_statement_list(octave::tree_statement_list&)
(pt-stmt.h:119)
==191900==    by 0x52C06CC:
octave::tree_evaluator::execute_user_function(octave_user_function&, int,
octave_value_list const&) (pt-stmt.h:194)
==191900==    by 0x533DF06:
octave_user_function::call(octave::tree_evaluator&, int, octave_value_list
const&) (ov-usr-fcn.cc:455)
==191900==    by 0x52BCDA9:
octave::tree_evaluator::visit_index_expression(octave::tree_index_expression&)
(pt-eval.cc:2008)
==191900== 
==191900== Conditional jump or move depends on uninitialised value(s)
==191900==    at 0x625584B: Range::max() const (Range.cc:230)
==191900==    by 0x6256EAB: Range::limit_internal() const (Range.cc:605)
==191900==    by 0x486537A: F__lti_input_idx__(octave_value_list const&, int)
(in
/usr/lib64/octave/packages/control-3.2.0/x86_64-redhat-linux-gnu-api-v53/__control_helper_functions__.oct)
==191900==    by 0x5415AF1: octave_builtin::call(octave::tree_evaluator&, int,
octave_value_list const&) (ov-builtin.cc:65)
==191900==    by 0x52BCDA9:
octave::tree_evaluator::visit_index_expression(octave::tree_index_expression&)
(pt-eval.cc:2008)
==191900==    by 0x52D010B:
octave::tree_evaluator::evaluate_n(octave::tree_expression*, int)
(pt-eval.h:343)
==191900==    by 0x52BD61B:
octave::tree_evaluator::visit_multi_assignment(octave::tree_multi_assignment&)
(pt-eval.cc:2320)
==191900==    by 0x53E771F:
octave::tree_evaluator::evaluate(octave::tree_expression*, int)
(pt-eval.h:312)
==191900==    by 0x52B8DCC:
octave::tree_evaluator::visit_statement(octave::tree_statement&)
(pt-eval.cc:2776)
==191900==    by 0x52B2903:
octave::tree_evaluator::visit_statement_list(octave::tree_statement_list&)
(pt-stmt.h:119)
==191900==    by 0x52C06CC:
octave::tree_evaluator::execute_user_function(octave_user_function&, int,
octave_value_list const&) (pt-stmt.h:194)
==191900==    by 0x533DF06:
octave_user_function::call(octave::tree_evaluator&, int, octave_value_list
const&) (ov-usr-fcn.cc:455)
==191900== 
==191900== Stack overflow in thread #1: can't grow stack to 0x1ffe801000
==191900== Can't extend stack to 0x1ffe800988 during signal delivery for
thread 1:
==191900==   no stack segment
==191900== 
==191900== Process terminating with default action of signal 11 (SIGSEGV):
dumping core
==191900==  Access not within mapped region at address 0x1FFE800988
==191900== Stack overflow in thread #1: can't grow stack to 0x1ffe801000
==191900==    at 0x48D87BC: printf_positional (in
/usr/lib64/libc-2.30.9000.so)





    _______________________________________________________

Reply to this item at:

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

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




reply via email to

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