a possible bug in mzd_submatrix

Issue #72 resolved
Dmitrii Pasechnik created an issue

As discussed on https://trac.sagemath.org/ticket/28944

Specifically, $ MALLOC_CHECK_=3 ./sage -c 'zero_matrix(GF(2), 2, 129).submatrix(1, 1)'

produces

free(): invalid pointer
------------------------------------------------------------------------
/home/dimpase/sage/local/lib/python3.7/site-packages/cysignals/signals.cpython-37m-x86_64-linux-gnu.so(+0x9248)[0x7963fe343248]
/home/dimpase/sage/local/lib/python3.7/site-packages/cysignals/signals.cpython-37m-x86_64-linux-gnu.so(+0x92e8)[0x7963fe3432e8]
/home/dimpase/sage/local/lib/python3.7/site-packages/cysignals/signals.cpython-37m-x86_64-linux-gnu.so(+0xce6d)[0x7963fe346e6d]
/lib/x86_64-linux-gnu/libpthread.so.0(+0x12730)[0x7963feae9730]
/lib/x86_64-linux-gnu/libc.so.6(gsignal+0x10b)[0x7963fe7be7bb]
/lib/x86_64-linux-gnu/libc.so.6(abort+0x121)[0x7963fe7a9535]
/lib/x86_64-linux-gnu/libc.so.6(+0x79508)[0x7963fe800508]
/lib/x86_64-linux-gnu/libc.so.6(+0x7fc1a)[0x7963fe806c1a]
/lib/x86_64-linux-gnu/libc.so.6(+0x83b3e)[0x7963fe80ab3e]
/home/dimpase/sage/local/lib/libm4ri-0.0.20200115.so(m4ri_mmc_cleanup+0x43)[0x7963971082c3]
/home/dimpase/sage/local/lib/libm4ri-0.0.20200115.so(m4ri_fini+0x9)[0x7963970e1ad9]
/lib64/ld-linux-x86-64.so.2(+0xf6f6)[0x7963fee926f6]
/lib/x86_64-linux-gnu/libc.so.6(+0x39d8c)[0x7963fe7c0d8c]
/lib/x86_64-linux-gnu/libc.so.6(+0x39eba)[0x7963fe7c0eba]
/lib/x86_64-linux-gnu/libc.so.6(__libc_start_main+0xf2)[0x7963fe7ab0a2]
python3(_start+0x2a)[0x5cba469ba08a]

apparently the call in Sage is mzd_submatrix(A._entries, self._entries, 1, 1, 2, 129)

Also, note that mzd_submatrix is not tested in tests/

Comments (4)

  1. Dmitrii Pasechnik reporter

    Thanks, this works, and fixes Sage bugs too.

    Would you mind making a new release?

  2. Log in to comment