DrMcCoy / dmc_unrar

A dependency-free, single-file FLOSS unrar library
GNU General Public License v2.0
57 stars 10 forks source link

Solid RAR5 archive extraction SIGABRT #9

Closed Tarasus closed 3 years ago

Tarasus commented 3 years ago

I'm trying to extract jpg image files from RAR5 solid archive, and get assertion on dmc_unrar.c:7818

A/libc: %projectpath%/dmc_unrar/dmc_unrar.c:7818: dmc_unrar_size_t dmc_unrar_lzss_emit_copy(dmc_unrar_lzss *, uint8_t *, dmc_unrar_size_t, dmc_unrar_size_t, dmc_unrar_size_t, dmc_unrar_size_t, dmc_unrar_size_t *): assertion "copy_offset <= lzss->window_offset" failed
signal 6 (SIGABRT), code -6 (SI_TKILL), fault addr --------
Abort message: '%projectpath%/dmc_unrar/dmc_unrar.c:7818: dmc_unrar_size_t dmc_unrar_lzss_emit_copy(dmc_unrar_lzss *, uint8_t *, dmc_unrar_size_t, dmc_unrar_size_t, dmc_unrar_size_t, dmc_unrar_size_t, dmc_unrar_size_t *): assertion "copy_offset <= lzss->window_offset" failed'
    r0  00000000  r1  00007577  r2  00000006  r3  00000008
    r4  00007577  r5  00007577  r6  ffac5b54  r7  0000010c
    r8  000001bd  r9  00000000  r10 00000400  r11 e9bab030
    ip  ffac5c18  sp  ffac5b40  lr  e9caf0c5  pc  e9ca5f76
backtrace:\
    #00 pc 0001cf76  /system/lib/libc.so (abort+58)
    #01 pc 0001d4a7  /system/lib/libc.so (__assert2+22)
    #02 pc 0005b63f  #(dmc_unrar_lzss_emit_copy+158)
    #03 pc 00066031  #(dmc_unrar_rar50_decode_huffman+316)
    #04 pc 00065a31  #(dmc_unrar_rar50_decompress_block+564)
    #05 pc 000653d9  #(dmc_unrar_rar50_decompress+748)
    #06 pc 00065095  #(dmc_unrar_rar50_unpack+64)
    #07 pc 00066cab  #(dmc_unrar_extractor_unpack+62)
    #08 pc 000591fb  #(dmc_unrar_file_extract_with_callback_and_extractor+406)
    #09 pc 00059bd9  #(dmc_unrar_rar_context_unpack+604)
    #10 pc 00059051  #(dmc_unrar_file_unpack+300)
    #11 pc 00056bc3  #(dmc_unrar_file_extract+234)
    #12 pc 00056a51  #(dmc_unrar_extract_file_with_callback+224)
    #13 pc 00056c6d  #(dmc_unrar_extract_file_to_mem+132)
    #14 pc 0000b649  #(CbrManager::getPageInfo(unsigned int, int*, int*)+488)
DrMcCoy commented 3 years ago

Yeah, solid archives are still broken, unfortunately. See #7. Closing this as a duplicate.

I haven't yet had time to debug this issue. If you want to tackle this, I'd welcome the help.