Segfault when fragments without metadata are passed

Issue #10 resolved
Tushar Gohad repo owner created an issue

When using pyeclib+liberasurecode, the following simple snippet results in a segfault -

#!/usr/bin/env python

from pyeclib.ec_iface import ECDriver
driver = ECDriver(k=3, m=1, ec_type='jerasure_rs_vand')
fragments = [' ' for f in range(3)]
driver.decode(fragments)

Backtrace:

#0  0x00007fcd015bc840 in __GI___libc_free (mem=0xd2f230) at malloc.c:2984
#1  0x00007fcd00a3b278 in liberasurecode_decode (desc=0, available_fragments=<optimized out>, num_fragments=0, fragment_len=1,
    force_metadata_checks=0, out_data=0x7fff9715f550, out_data_len=0x7fff9715f558) at erasurecode.c:696
#2  0x00007fcd00c52d15 in pyeclib_c_decode (self=<optimized out>, args=<optimized out>) at src/c/pyeclib_c/pyeclib_c.c:704
#3  0x000000000056d4a4 in PyEval_EvalFrameEx ()
#4  0x00000000005747c0 in PyEval_EvalCodeEx ()
#5  0x000000000056da48 in PyEval_EvalFrameEx ()
#6  0x00000000005747c0 in PyEval_EvalCodeEx ()
#7  0x000000000056da48 in PyEval_EvalFrameEx ()
#8  0x00000000005747c0 in PyEval_EvalCodeEx ()
#9  0x0000000000569ee1 in PyRun_FileExFlags ()
#10 0x000000000056a6b3 in PyRun_SimpleFileExFlags ()
#11 0x000000000056ba75 in Py_Main ()
#12 0x00007fcd0155b76d in __libc_start_main (main=0x41bae0 <main>, argc=2, ubp_av=0x7fff97160008, init=<optimized out>,
    fini=<optimized out>, rtld_fini=<optimized out>, stack_end=0x7fff9715fff8) at libc-start.c:226
#13 0x000000000041bb11 in _start ()

Comments (7)

  1. Log in to comment