Segfault when remuxing RealMedia file
Remuxing issue747.rm (which I uploaded) leads to a segfault and so many errors that had to disable valgrind's error-limit:
==3888== Memcheck, a memory error detector
==3888== Copyright (C) 2002-2017, and GNU GPL'd, by Julian Seward et al.
==3888== Using Valgrind-3.14.0 and LibVEX; rerun with -h for copyright info
==3888== Command: mkvmerge -o out.mkv issue747.rm
==3888==
mkvmerge v41.0.0 ('Smarra') 64-bit
'issue747.rm': Using the demultiplexer for the format 'RealMedia'.
'issue747.rm' track 0: Using the output module for the format 'generic video'.
'issue747.rm' track 1: Using the output module for the format 'RealAudio'.
The file 'out.mkv' has been opened for writing.
==3888== Warning: set address range perms: large range [0x59c89040, 0x158d85b40) (undefined)
==3888== Invalid read of size 1
==3888== at 0x483FB84: memmove (vg_replace_strmem.c:1270)
==3888== by 0x51672D: ??? (in /usr/bin/mkvmerge)
==3888== by 0x33B717: ??? (in /usr/bin/mkvmerge)
==3888== by 0x33D295: ??? (in /usr/bin/mkvmerge)
==3888== by 0x25AC1A: ??? (in /usr/bin/mkvmerge)
==3888== by 0x26B055: ??? (in /usr/bin/mkvmerge)
==3888== by 0x1ED6CC: ??? (in /usr/bin/mkvmerge)
==3888== by 0x5212B6A: (below main) (libc-start.c:308)
==3888== Address 0x59c8903f is 1 bytes before a block of size 4,279,225,088 alloc'd
==3888== at 0x483874F: malloc (vg_replace_malloc.c:299)
==3888== by 0x51309E: ??? (in /usr/bin/mkvmerge)
==3888== by 0x516711: ??? (in /usr/bin/mkvmerge)
==3888== by 0x33B717: ??? (in /usr/bin/mkvmerge)
==3888== by 0x33D295: ??? (in /usr/bin/mkvmerge)
==3888== by 0x25AC1A: ??? (in /usr/bin/mkvmerge)
==3888== by 0x26B055: ??? (in /usr/bin/mkvmerge)
==3888== by 0x1ED6CC: ??? (in /usr/bin/mkvmerge)
==3888== by 0x5212B6A: (below main) (libc-start.c:308)
==3888==
==3888==
==3888== Process terminating with default action of signal 11 (SIGSEGV)
==3888== Access not within mapped region at address 0x5827FFFF
==3888== at 0x483FB84: memmove (vg_replace_strmem.c:1270)
==3888== by 0x51672D: ??? (in /usr/bin/mkvmerge)
==3888== by 0x33B717: ??? (in /usr/bin/mkvmerge)
==3888== by 0x33D295: ??? (in /usr/bin/mkvmerge)
==3888== by 0x25AC1A: ??? (in /usr/bin/mkvmerge)
==3888== by 0x26B055: ??? (in /usr/bin/mkvmerge)
==3888== by 0x1ED6CC: ??? (in /usr/bin/mkvmerge)
==3888== by 0x5212B6A: (below main) (libc-start.c:308)
==3888== If you believe this happened as a result of a stack
==3888== overflow in your program's main thread (unlikely but
==3888== possible), you can try to increase the size of the
==3888== main thread stack using the --main-stacksize= flag.
==3888== The main thread stack size used in this run was 8388608.
==3888==
==3888== HEAP SUMMARY:
==3888== in use at exit: 4,300,678,042 bytes in 1,468 blocks
==3888== total heap usage: 109,116 allocs, 107,648 frees, 4,315,563,977 bytes allocated
==3888==
==3888== LEAK SUMMARY:
==3888== definitely lost: 0 bytes in 0 blocks
==3888== indirectly lost: 0 bytes in 0 blocks
==3888== possibly lost: 0 bytes in 0 blocks
==3888== still reachable: 4,300,678,042 bytes in 1,468 blocks
==3888== suppressed: 0 bytes in 0 blocks
==3888== Rerun with --leak-check=full to see details of leaked memory
==3888==
==3888== For counts of detected and suppressed errors, rerun with: -v
==3888== ERROR SUMMARY: 27299905 errors from 1 contexts (suppressed: 0 from 0)
Segmentation fault (core dumped)
Gruß Andreas