Open furtherun opened 5 months ago
Hi, Developers.
I have detected a memory leak crash at Ap4DataBuffer.cpp:210:28 in the latest tag version v1.6.0-641.
I discover this crash with a docker container configured with 1 CPU core of Intel(R) Xeon(R) Gold 5218R CPU @ 2.10GHz and the 64-bit Ubuntu 18.04 LTS.
v1.6.0-641
mp42hls
mkdir cmakebuild cd cmakebuild cmake -DCMAKE_BUILD_TYPE=Release .. make -j $(nproc)
./mp42hls ./bento4-poc1
One PoC file in this zip.
bento4-poc1.zip
ERROR: no movie in file ================================================================= ==3062==ERROR: LeakSanitizer: detected memory leaks Indirect leak of 343 byte(s) in 1 object(s) allocated from: #0 0x4c84ed in operator new[](unsigned long) (/out/mp42hls+0x4c84ed) #1 0x513fb0 in AP4_DataBuffer::ReallocateBuffer(unsigned int) /src/targets/bento4_v1.6_641/repo/Source/C++/Core/Ap4DataBuffer.cpp:210:28 #2 0x513fb0 in AP4_DataBuffer::SetDataSize(unsigned int) /src/targets/bento4_v1.6_641/repo/Source/C++/Core/Ap4DataBuffer.cpp:151:33 #3 0x4e1f53 in AP4_UnknownAtom::AP4_UnknownAtom(unsigned int, unsigned long long, AP4_ByteStream&) /src/targets/bento4_v1.6_641/repo/Source/C++/Core/Ap4Atom.cpp:346:19 #4 0x4ee673 in AP4_AtomFactory::CreateAtomFromStream(AP4_ByteStream&, unsigned long long&, AP4_Atom*&) /src/targets/bento4_v1.6_641/repo/Source/C++/Core/Ap4AtomFactory.cpp:242:20 #5 0x4eddce in AP4_AtomFactory::CreateAtomFromStream(AP4_ByteStream&, AP4_Atom*&) /src/targets/bento4_v1.6_641/repo/Source/C++/Core/Ap4AtomFactory.cpp:154:12 #6 0x51bd8e in AP4_File::ParseStream(AP4_ByteStream&, AP4_AtomFactory&, bool) /src/targets/bento4_v1.6_641/repo/Source/C++/Core/Ap4File.cpp:104:12 #7 0x51c4bd in AP4_File::AP4_File(AP4_ByteStream&, bool) /src/targets/bento4_v1.6_641/repo/Source/C++/Core/Ap4File.cpp:78:5 #8 0x4cf155 in main /src/targets/bento4_v1.6_641/repo/Source/C++/Apps/Mp42Hls/Mp42Hls.cpp:1894:32 #9 0x7ebcef0fcc86 in __libc_start_main /build/glibc-CVJwZb/glibc-2.27/csu/../csu/libc-start.c:310 Indirect leak of 264 byte(s) in 3 object(s) allocated from: #0 0x4c83dd in operator new(unsigned long) (/out/mp42hls+0x4c83dd) #1 0x4ee637 in AP4_AtomFactory::CreateAtomFromStream(AP4_ByteStream&, unsigned long long&, AP4_Atom*&) /src/targets/bento4_v1.6_641/repo/Source/C++/Core/Ap4AtomFactory.cpp:242:16 #2 0x4eddce in AP4_AtomFactory::CreateAtomFromStream(AP4_ByteStream&, AP4_Atom*&) /src/targets/bento4_v1.6_641/repo/Source/C++/Core/Ap4AtomFactory.cpp:154:12 #3 0x51bd8e in AP4_File::ParseStream(AP4_ByteStream&, AP4_AtomFactory&, bool) /src/targets/bento4_v1.6_641/repo/Source/C++/Core/Ap4File.cpp:104:12 #4 0x51c4bd in AP4_File::AP4_File(AP4_ByteStream&, bool) /src/targets/bento4_v1.6_641/repo/Source/C++/Core/Ap4File.cpp:78:5 #5 0x4cf155 in main /src/targets/bento4_v1.6_641/repo/Source/C++/Apps/Mp42Hls/Mp42Hls.cpp:1894:32 #6 0x7ebcef0fcc86 in __libc_start_main /build/glibc-CVJwZb/glibc-2.27/csu/../csu/libc-start.c:310 Indirect leak of 256 byte(s) in 1 object(s) allocated from: #0 0x4c83dd in operator new(unsigned long) (/out/mp42hls+0x4c83dd) #1 0x51d165 in AP4_Array<unsigned int>::EnsureCapacity(unsigned int) /src/targets/bento4_v1.6_641/repo/Source/C++/Core/Ap4Array.h:172:25 #2 0x51d165 in AP4_Array<unsigned int>::Append(unsigned int const&) /src/targets/bento4_v1.6_641/repo/Source/C++/Core/Ap4Array.h:252:29 #3 0x51d165 in AP4_FtypAtom::AP4_FtypAtom(unsigned int, AP4_ByteStream&) /src/targets/bento4_v1.6_641/repo/Source/C++/Core/Ap4FtypAtom.cpp:57:28 #4 0x4efd4b in AP4_FtypAtom::Create(unsigned int, AP4_ByteStream&) /src/targets/bento4_v1.6_641/repo/Source/C++/Core/Ap4FtypAtom.h:66:20 #5 0x4efd4b in AP4_AtomFactory::CreateAtomFromStream(AP4_ByteStream&, unsigned int, unsigned int, unsigned long long, AP4_Atom*&) /src/targets/bento4_v1.6_641/repo/Source/C++/Core/Ap4AtomFactory.cpp:630:20 #6 0x4ee5a4 in AP4_AtomFactory::CreateAtomFromStream(AP4_ByteStream&, unsigned long long&, AP4_Atom*&) /src/targets/bento4_v1.6_641/repo/Source/C++/Core/Ap4AtomFactory.cpp:234:14 #7 0x4eddce in AP4_AtomFactory::CreateAtomFromStream(AP4_ByteStream&, AP4_Atom*&) /src/targets/bento4_v1.6_641/repo/Source/C++/Core/Ap4AtomFactory.cpp:154:12 #8 0x51bd8e in AP4_File::ParseStream(AP4_ByteStream&, AP4_AtomFactory&, bool) /src/targets/bento4_v1.6_641/repo/Source/C++/Core/Ap4File.cpp:104:12 #9 0x51c4bd in AP4_File::AP4_File(AP4_ByteStream&, bool) /src/targets/bento4_v1.6_641/repo/Source/C++/Core/Ap4File.cpp:78:5 #10 0x4cf155 in main /src/targets/bento4_v1.6_641/repo/Source/C++/Apps/Mp42Hls/Mp42Hls.cpp:1894:32 #11 0x7ebcef0fcc86 in __libc_start_main /build/glibc-CVJwZb/glibc-2.27/csu/../csu/libc-start.c:310 Indirect leak of 152 byte(s) in 1 object(s) allocated from: #0 0x4c83dd in operator new(unsigned long) (/out/mp42hls+0x4c83dd) #1 0x4efe7f in AP4_AtomFactory::CreateAtomFromStream(AP4_ByteStream&, unsigned int, unsigned int, unsigned long long, AP4_Atom*&) /src/targets/bento4_v1.6_641/repo/Source/C++/Core/Ap4AtomFactory.cpp:319:20 #2 0x4ee5a4 in AP4_AtomFactory::CreateAtomFromStream(AP4_ByteStream&, unsigned long long&, AP4_Atom*&) /src/targets/bento4_v1.6_641/repo/Source/C++/Core/Ap4AtomFactory.cpp:234:14 #3 0x590c2e in AP4_StsdAtom::AP4_StsdAtom(unsigned int, unsigned char, unsigned int, AP4_ByteStream&, AP4_AtomFactory&) /src/targets/bento4_v1.6_641/repo/Source/C++/Core/Ap4StsdAtom.cpp:101:13 #4 0x58fe38 in AP4_StsdAtom::Create(unsigned int, AP4_ByteStream&, AP4_AtomFactory&) /src/targets/bento4_v1.6_641/repo/Source/C++/Core/Ap4StsdAtom.cpp:57:16 #5 0x4f0060 in AP4_AtomFactory::CreateAtomFromStream(AP4_ByteStream&, unsigned int, unsigned int, unsigned long long, AP4_Atom*&) /src/targets/bento4_v1.6_641/repo/Source/C++/Core/Ap4AtomFactory.cpp:458:20 #6 0x4ee5a4 in AP4_AtomFactory::CreateAtomFromStream(AP4_ByteStream&, unsigned long long&, AP4_Atom*&) /src/targets/bento4_v1.6_641/repo/Source/C++/Core/Ap4AtomFactory.cpp:234:14 #7 0x4eddce in AP4_AtomFactory::CreateAtomFromStream(AP4_ByteStream&, AP4_Atom*&) /src/targets/bento4_v1.6_641/repo/Source/C++/Core/Ap4AtomFactory.cpp:154:12 #8 0x51bd8e in AP4_File::ParseStream(AP4_ByteStream&, AP4_AtomFactory&, bool) /src/targets/bento4_v1.6_641/repo/Source/C++/Core/Ap4File.cpp:104:12 #9 0x51c4bd in AP4_File::AP4_File(AP4_ByteStream&, bool) /src/targets/bento4_v1.6_641/repo/Source/C++/Core/Ap4File.cpp:78:5 #10 0x4cf155 in main /src/targets/bento4_v1.6_641/repo/Source/C++/Apps/Mp42Hls/Mp42Hls.cpp:1894:32 #11 0x7ebcef0fcc86 in __libc_start_main /build/glibc-CVJwZb/glibc-2.27/csu/../csu/libc-start.c:310 Indirect leak of 136 byte(s) in 1 object(s) allocated from: #0 0x4c83dd in operator new(unsigned long) (/out/mp42hls+0x4c83dd) #1 0x520db6 in AP4_HvccAtom::Create(unsigned int, AP4_ByteStream&) /src/targets/bento4_v1.6_641/repo/Source/C++/Core/Ap4HvccAtom.cpp:90:12 #2 0x4ef3f1 in AP4_AtomFactory::CreateAtomFromStream(AP4_ByteStream&, unsigned int, unsigned int, unsigned long long, AP4_Atom*&) /src/targets/bento4_v1.6_641/repo/Source/C++/Core/Ap4AtomFactory.cpp:518:20 #3 0x4ee5a4 in AP4_AtomFactory::CreateAtomFromStream(AP4_ByteStream&, unsigned long long&, AP4_Atom*&) /src/targets/bento4_v1.6_641/repo/Source/C++/Core/Ap4AtomFactory.cpp:234:14 #4 0x5003dc in AP4_ContainerAtom::ReadChildren(AP4_AtomFactory&, AP4_ByteStream&, unsigned long long) /src/targets/bento4_v1.6_641/repo/Source/C++/Core/Ap4ContainerAtom.cpp:194:12 #5 0x58109d in AP4_VisualSampleEntry::AP4_VisualSampleEntry(unsigned int, unsigned int, AP4_ByteStream&, AP4_AtomFactory&) /src/targets/bento4_v1.6_641/repo/Source/C++/Core/Ap4SampleEntry.cpp:884:5 #6 0x58109d in AP4_AvcSampleEntry::AP4_AvcSampleEntry(unsigned int, unsigned int, AP4_ByteStream&, AP4_AtomFactory&) /src/targets/bento4_v1.6_641/repo/Source/C++/Core/Ap4SampleEntry.cpp:1136:5 #7 0x4efe98 in AP4_AtomFactory::CreateAtomFromStream(AP4_ByteStream&, unsigned int, unsigned int, unsigned long long, AP4_Atom*&) /src/targets/bento4_v1.6_641/repo/Source/C++/Core/Ap4AtomFactory.cpp:319:24 #8 0x4ee5a4 in AP4_AtomFactory::CreateAtomFromStream(AP4_ByteStream&, unsigned long long&, AP4_Atom*&) /src/targets/bento4_v1.6_641/repo/Source/C++/Core/Ap4AtomFactory.cpp:234:14 #9 0x590c2e in AP4_StsdAtom::AP4_StsdAtom(unsigned int, unsigned char, unsigned int, AP4_ByteStream&, AP4_AtomFactory&) /src/targets/bento4_v1.6_641/repo/Source/C++/Core/Ap4StsdAtom.cpp:101:13 #10 0x58fe38 in AP4_StsdAtom::Create(unsigned int, AP4_ByteStream&, AP4_AtomFactory&) /src/targets/bento4_v1.6_641/repo/Source/C++/Core/Ap4StsdAtom.cpp:57:16 #11 0x4f0060 in AP4_AtomFactory::CreateAtomFromStream(AP4_ByteStream&, unsigned int, unsigned int, unsigned long long, AP4_Atom*&) /src/targets/bento4_v1.6_641/repo/Source/C++/Core/Ap4AtomFactory.cpp:458:20 #12 0x4ee5a4 in AP4_AtomFactory::CreateAtomFromStream(AP4_ByteStream&, unsigned long long&, AP4_Atom*&) /src/targets/bento4_v1.6_641/repo/Source/C++/Core/Ap4AtomFactory.cpp:234:14 #13 0x4eddce in AP4_AtomFactory::CreateAtomFromStream(AP4_ByteStream&, AP4_Atom*&) /src/targets/bento4_v1.6_641/repo/Source/C++/Core/Ap4AtomFactory.cpp:154:12 #14 0x51bd8e in AP4_File::ParseStream(AP4_ByteStream&, AP4_AtomFactory&, bool) /src/targets/bento4_v1.6_641/repo/Source/C++/Core/Ap4File.cpp:104:12 #15 0x51c4bd in AP4_File::AP4_File(AP4_ByteStream&, bool) /src/targets/bento4_v1.6_641/repo/Source/C++/Core/Ap4File.cpp:78:5 #16 0x4cf155 in main /src/targets/bento4_v1.6_641/repo/Source/C++/Apps/Mp42Hls/Mp42Hls.cpp:1894:32 #17 0x7ebcef0fcc86 in __libc_start_main /build/glibc-CVJwZb/glibc-2.27/csu/../csu/libc-start.c:310 Indirect leak of 120 byte(s) in 5 object(s) allocated from: #0 0x4c83dd in operator new(unsigned long) (/out/mp42hls+0x4c83dd) #1 0x4e38aa in AP4_List<AP4_Atom>::Add(AP4_Atom*) /src/targets/bento4_v1.6_641/repo/Source/C++/Core/Ap4List.h:160:16 #2 0x4e38aa in AP4_AtomParent::AddChild(AP4_Atom*, int) /src/targets/bento4_v1.6_641/repo/Source/C++/Core/Ap4Atom.cpp:532:29 #3 0x51bdde in AP4_File::ParseStream(AP4_ByteStream&, AP4_AtomFactory&, bool) /src/targets/bento4_v1.6_641/repo/Source/C++/Core/Ap4File.cpp:105:9 #4 0x51c4bd in AP4_File::AP4_File(AP4_ByteStream&, bool) /src/targets/bento4_v1.6_641/repo/Source/C++/Core/Ap4File.cpp:78:5 #5 0x4cf155 in main /src/targets/bento4_v1.6_641/repo/Source/C++/Apps/Mp42Hls/Mp42Hls.cpp:1894:32 #6 0x7ebcef0fcc86 in __libc_start_main /build/glibc-CVJwZb/glibc-2.27/csu/../csu/libc-start.c:310 Indirect leak of 104 byte(s) in 1 object(s) allocated from: #0 0x4c83dd in operator new(unsigned long) (/out/mp42hls+0x4c83dd) #1 0x58fe05 in AP4_StsdAtom::Create(unsigned int, AP4_ByteStream&, AP4_AtomFactory&) /src/targets/bento4_v1.6_641/repo/Source/C++/Core/Ap4StsdAtom.cpp:57:12 #2 0x4f0060 in AP4_AtomFactory::CreateAtomFromStream(AP4_ByteStream&, unsigned int, unsigned int, unsigned long long, AP4_Atom*&) /src/targets/bento4_v1.6_641/repo/Source/C++/Core/Ap4AtomFactory.cpp:458:20 #3 0x4ee5a4 in AP4_AtomFactory::CreateAtomFromStream(AP4_ByteStream&, unsigned long long&, AP4_Atom*&) /src/targets/bento4_v1.6_641/repo/Source/C++/Core/Ap4AtomFactory.cpp:234:14 #4 0x4eddce in AP4_AtomFactory::CreateAtomFromStream(AP4_ByteStream&, AP4_Atom*&) /src/targets/bento4_v1.6_641/repo/Source/C++/Core/Ap4AtomFactory.cpp:154:12 #5 0x51bd8e in AP4_File::ParseStream(AP4_ByteStream&, AP4_AtomFactory&, bool) /src/targets/bento4_v1.6_641/repo/Source/C++/Core/Ap4File.cpp:104:12 #6 0x51c4bd in AP4_File::AP4_File(AP4_ByteStream&, bool) /src/targets/bento4_v1.6_641/repo/Source/C++/Core/Ap4File.cpp:78:5 #7 0x4cf155 in main /src/targets/bento4_v1.6_641/repo/Source/C++/Apps/Mp42Hls/Mp42Hls.cpp:1894:32 #8 0x7ebcef0fcc86 in __libc_start_main /build/glibc-CVJwZb/glibc-2.27/csu/../csu/libc-start.c:310 Indirect leak of 72 byte(s) in 1 object(s) allocated from: #0 0x4c83dd in operator new(unsigned long) (/out/mp42hls+0x4c83dd) #1 0x4cf127 in main /src/targets/bento4_v1.6_641/repo/Source/C++/Apps/Mp42Hls/Mp42Hls.cpp:1894:28 #2 0x7ebcef0fcc86 in __libc_start_main /build/glibc-CVJwZb/glibc-2.27/csu/../csu/libc-start.c:310 Indirect leak of 72 byte(s) in 1 object(s) allocated from: #0 0x4c83dd in operator new(unsigned long) (/out/mp42hls+0x4c83dd) #1 0x4efd39 in AP4_FtypAtom::Create(unsigned int, AP4_ByteStream&) /src/targets/bento4_v1.6_641/repo/Source/C++/Core/Ap4FtypAtom.h:66:16 #2 0x4efd39 in AP4_AtomFactory::CreateAtomFromStream(AP4_ByteStream&, unsigned int, unsigned int, unsigned long long, AP4_Atom*&) /src/targets/bento4_v1.6_641/repo/Source/C++/Core/Ap4AtomFactory.cpp:630:20 #3 0x4ee5a4 in AP4_AtomFactory::CreateAtomFromStream(AP4_ByteStream&, unsigned long long&, AP4_Atom*&) /src/targets/bento4_v1.6_641/repo/Source/C++/Core/Ap4AtomFactory.cpp:234:14 #4 0x4eddce in AP4_AtomFactory::CreateAtomFromStream(AP4_ByteStream&, AP4_Atom*&) /src/targets/bento4_v1.6_641/repo/Source/C++/Core/Ap4AtomFactory.cpp:154:12 #5 0x51bd8e in AP4_File::ParseStream(AP4_ByteStream&, AP4_AtomFactory&, bool) /src/targets/bento4_v1.6_641/repo/Source/C++/Core/Ap4File.cpp:104:12 #6 0x51c4bd in AP4_File::AP4_File(AP4_ByteStream&, bool) /src/targets/bento4_v1.6_641/repo/Source/C++/Core/Ap4File.cpp:78:5 #7 0x4cf155 in main /src/targets/bento4_v1.6_641/repo/Source/C++/Apps/Mp42Hls/Mp42Hls.cpp:1894:32 #8 0x7ebcef0fcc86 in __libc_start_main /build/glibc-CVJwZb/glibc-2.27/csu/../csu/libc-start.c:310 Indirect leak of 48 byte(s) in 1 object(s) allocated from: #0 0x4c83dd in operator new(unsigned long) (/out/mp42hls+0x4c83dd) #1 0x5d393e in AP4_StdcFileByteStream::Create(AP4_FileByteStream*, char const*, AP4_FileByteStream::Mode, AP4_ByteStream*&) /src/targets/bento4_v1.6_641/repo/Source/C++/System/StdC/Ap4StdCFileByteStream.cpp:279:14 #2 0x4cf115 in main /src/targets/bento4_v1.6_641/repo/Source/C++/Apps/Mp42Hls/Mp42Hls.cpp:1887:14 #3 0x7ebcef0fcc86 in __libc_start_main /build/glibc-CVJwZb/glibc-2.27/csu/../csu/libc-start.c:310 Indirect leak of 24 byte(s) in 1 object(s) allocated from: #0 0x4c83dd in operator new(unsigned long) (/out/mp42hls+0x4c83dd) #1 0x590ca8 in AP4_List<AP4_Atom>::Add(AP4_Atom*) /src/targets/bento4_v1.6_641/repo/Source/C++/Core/Ap4List.h:160:16 #2 0x590ca8 in AP4_StsdAtom::AP4_StsdAtom(unsigned int, unsigned char, unsigned int, AP4_ByteStream&, AP4_AtomFactory&) /src/targets/bento4_v1.6_641/repo/Source/C++/Core/Ap4StsdAtom.cpp:105:24 #3 0x58fe38 in AP4_StsdAtom::Create(unsigned int, AP4_ByteStream&, AP4_AtomFactory&) /src/targets/bento4_v1.6_641/repo/Source/C++/Core/Ap4StsdAtom.cpp:57:16 #4 0x4f0060 in AP4_AtomFactory::CreateAtomFromStream(AP4_ByteStream&, unsigned int, unsigned int, unsigned long long, AP4_Atom*&) /src/targets/bento4_v1.6_641/repo/Source/C++/Core/Ap4AtomFactory.cpp:458:20 #5 0x4ee5a4 in AP4_AtomFactory::CreateAtomFromStream(AP4_ByteStream&, unsigned long long&, AP4_Atom*&) /src/targets/bento4_v1.6_641/repo/Source/C++/Core/Ap4AtomFactory.cpp:234:14 #6 0x4eddce in AP4_AtomFactory::CreateAtomFromStream(AP4_ByteStream&, AP4_Atom*&) /src/targets/bento4_v1.6_641/repo/Source/C++/Core/Ap4AtomFactory.cpp:154:12 #7 0x51bd8e in AP4_File::ParseStream(AP4_ByteStream&, AP4_AtomFactory&, bool) /src/targets/bento4_v1.6_641/repo/Source/C++/Core/Ap4File.cpp:104:12 #8 0x51c4bd in AP4_File::AP4_File(AP4_ByteStream&, bool) /src/targets/bento4_v1.6_641/repo/Source/C++/Core/Ap4File.cpp:78:5 #9 0x4cf155 in main /src/targets/bento4_v1.6_641/repo/Source/C++/Apps/Mp42Hls/Mp42Hls.cpp:1894:32 #10 0x7ebcef0fcc86 in __libc_start_main /build/glibc-CVJwZb/glibc-2.27/csu/../csu/libc-start.c:310 Indirect leak of 24 byte(s) in 1 object(s) allocated from: #0 0x4c83dd in operator new(unsigned long) (/out/mp42hls+0x4c83dd) #1 0x5004ec in AP4_List<AP4_Atom>::Add(AP4_Atom*) /src/targets/bento4_v1.6_641/repo/Source/C++/Core/Ap4List.h:160:16 #2 0x5004ec in AP4_ContainerAtom::ReadChildren(AP4_AtomFactory&, AP4_ByteStream&, unsigned long long) /src/targets/bento4_v1.6_641/repo/Source/C++/Core/Ap4ContainerAtom.cpp:197:20 #3 0x58109d in AP4_VisualSampleEntry::AP4_VisualSampleEntry(unsigned int, unsigned int, AP4_ByteStream&, AP4_AtomFactory&) /src/targets/bento4_v1.6_641/repo/Source/C++/Core/Ap4SampleEntry.cpp:884:5 #4 0x58109d in AP4_AvcSampleEntry::AP4_AvcSampleEntry(unsigned int, unsigned int, AP4_ByteStream&, AP4_AtomFactory&) /src/targets/bento4_v1.6_641/repo/Source/C++/Core/Ap4SampleEntry.cpp:1136:5 #5 0x4efe98 in AP4_AtomFactory::CreateAtomFromStream(AP4_ByteStream&, unsigned int, unsigned int, unsigned long long, AP4_Atom*&) /src/targets/bento4_v1.6_641/repo/Source/C++/Core/Ap4AtomFactory.cpp:319:24 #6 0x4ee5a4 in AP4_AtomFactory::CreateAtomFromStream(AP4_ByteStream&, unsigned long long&, AP4_Atom*&) /src/targets/bento4_v1.6_641/repo/Source/C++/Core/Ap4AtomFactory.cpp:234:14 #7 0x590c2e in AP4_StsdAtom::AP4_StsdAtom(unsigned int, unsigned char, unsigned int, AP4_ByteStream&, AP4_AtomFactory&) /src/targets/bento4_v1.6_641/repo/Source/C++/Core/Ap4StsdAtom.cpp:101:13 #8 0x58fe38 in AP4_StsdAtom::Create(unsigned int, AP4_ByteStream&, AP4_AtomFactory&) /src/targets/bento4_v1.6_641/repo/Source/C++/Core/Ap4StsdAtom.cpp:57:16 #9 0x4f0060 in AP4_AtomFactory::CreateAtomFromStream(AP4_ByteStream&, unsigned int, unsigned int, unsigned long long, AP4_Atom*&) /src/targets/bento4_v1.6_641/repo/Source/C++/Core/Ap4AtomFactory.cpp:458:20 #10 0x4ee5a4 in AP4_AtomFactory::CreateAtomFromStream(AP4_ByteStream&, unsigned long long&, AP4_Atom*&) /src/targets/bento4_v1.6_641/repo/Source/C++/Core/Ap4AtomFactory.cpp:234:14 #11 0x4eddce in AP4_AtomFactory::CreateAtomFromStream(AP4_ByteStream&, AP4_Atom*&) /src/targets/bento4_v1.6_641/repo/Source/C++/Core/Ap4AtomFactory.cpp:154:12 #12 0x51bd8e in AP4_File::ParseStream(AP4_ByteStream&, AP4_AtomFactory&, bool) /src/targets/bento4_v1.6_641/repo/Source/C++/Core/Ap4File.cpp:104:12 #13 0x51c4bd in AP4_File::AP4_File(AP4_ByteStream&, bool) /src/targets/bento4_v1.6_641/repo/Source/C++/Core/Ap4File.cpp:78:5 #14 0x4cf155 in main /src/targets/bento4_v1.6_641/repo/Source/C++/Apps/Mp42Hls/Mp42Hls.cpp:1894:32 #15 0x7ebcef0fcc86 in __libc_start_main /build/glibc-CVJwZb/glibc-2.27/csu/../csu/libc-start.c:310 Indirect leak of 11 byte(s) in 1 object(s) allocated from: #0 0x4c84ed in operator new[](unsigned long) (/out/mp42hls+0x4c84ed) #1 0x58ccfe in AP4_String::Assign(char const*, unsigned int) /src/targets/bento4_v1.6_641/repo/Source/C++/Core/Ap4String.cpp:165:15 #2 0x58ccfe in AP4_String::operator=(char const*) /src/targets/bento4_v1.6_641/repo/Source/C++/Core/Ap4String.cpp:123:9 #3 0x57f23f in AP4_VisualSampleEntry::ReadFields(AP4_ByteStream&) /src/targets/bento4_v1.6_641/repo/Source/C++/Core/Ap4SampleEntry.cpp:923:26 #4 0x579bfd in AP4_SampleEntry::Read(AP4_ByteStream&, AP4_AtomFactory&) /src/targets/bento4_v1.6_641/repo/Source/C++/Core/Ap4SampleEntry.cpp:108:5 #5 0x58109d in AP4_VisualSampleEntry::AP4_VisualSampleEntry(unsigned int, unsigned int, AP4_ByteStream&, AP4_AtomFactory&) /src/targets/bento4_v1.6_641/repo/Source/C++/Core/Ap4SampleEntry.cpp:884:5 #6 0x58109d in AP4_AvcSampleEntry::AP4_AvcSampleEntry(unsigned int, unsigned int, AP4_ByteStream&, AP4_AtomFactory&) /src/targets/bento4_v1.6_641/repo/Source/C++/Core/Ap4SampleEntry.cpp:1136:5 #7 0x4efe98 in AP4_AtomFactory::CreateAtomFromStream(AP4_ByteStream&, unsigned int, unsigned int, unsigned long long, AP4_Atom*&) /src/targets/bento4_v1.6_641/repo/Source/C++/Core/Ap4AtomFactory.cpp:319:24 #8 0x4ee5a4 in AP4_AtomFactory::CreateAtomFromStream(AP4_ByteStream&, unsigned long long&, AP4_Atom*&) /src/targets/bento4_v1.6_641/repo/Source/C++/Core/Ap4AtomFactory.cpp:234:14 #9 0x590c2e in AP4_StsdAtom::AP4_StsdAtom(unsigned int, unsigned char, unsigned int, AP4_ByteStream&, AP4_AtomFactory&) /src/targets/bento4_v1.6_641/repo/Source/C++/Core/Ap4StsdAtom.cpp:101:13 #10 0x58fe38 in AP4_StsdAtom::Create(unsigned int, AP4_ByteStream&, AP4_AtomFactory&) /src/targets/bento4_v1.6_641/repo/Source/C++/Core/Ap4StsdAtom.cpp:57:16 #11 0x4f0060 in AP4_AtomFactory::CreateAtomFromStream(AP4_ByteStream&, unsigned int, unsigned int, unsigned long long, AP4_Atom*&) /src/targets/bento4_v1.6_641/repo/Source/C++/Core/Ap4AtomFactory.cpp:458:20 #12 0x4ee5a4 in AP4_AtomFactory::CreateAtomFromStream(AP4_ByteStream&, unsigned long long&, AP4_Atom*&) /src/targets/bento4_v1.6_641/repo/Source/C++/Core/Ap4AtomFactory.cpp:234:14 #13 0x4eddce in AP4_AtomFactory::CreateAtomFromStream(AP4_ByteStream&, AP4_Atom*&) /src/targets/bento4_v1.6_641/repo/Source/C++/Core/Ap4AtomFactory.cpp:154:12 #14 0x51bd8e in AP4_File::ParseStream(AP4_ByteStream&, AP4_AtomFactory&, bool) /src/targets/bento4_v1.6_641/repo/Source/C++/Core/Ap4File.cpp:104:12 #15 0x51c4bd in AP4_File::AP4_File(AP4_ByteStream&, bool) /src/targets/bento4_v1.6_641/repo/Source/C++/Core/Ap4File.cpp:78:5 #16 0x4cf155 in main /src/targets/bento4_v1.6_641/repo/Source/C++/Apps/Mp42Hls/Mp42Hls.cpp:1894:32 #17 0x7ebcef0fcc86 in __libc_start_main /build/glibc-CVJwZb/glibc-2.27/csu/../csu/libc-start.c:310 Indirect leak of 8 byte(s) in 1 object(s) allocated from: #0 0x4c83dd in operator new(unsigned long) (/out/mp42hls+0x4c83dd) #1 0x590eaa in AP4_Array<AP4_SampleDescription*>::EnsureCapacity(unsigned int) /src/targets/bento4_v1.6_641/repo/Source/C++/Core/Ap4Array.h:172:25 #2 0x590eaa in AP4_StsdAtom::AP4_StsdAtom(unsigned int, unsigned char, unsigned int, AP4_ByteStream&, AP4_AtomFactory&) /src/targets/bento4_v1.6_641/repo/Source/C++/Core/Ap4StsdAtom.cpp:115:26 #3 0x58fe38 in AP4_StsdAtom::Create(unsigned int, AP4_ByteStream&, AP4_AtomFactory&) /src/targets/bento4_v1.6_641/repo/Source/C++/Core/Ap4StsdAtom.cpp:57:16 #4 0x4f0060 in AP4_AtomFactory::CreateAtomFromStream(AP4_ByteStream&, unsigned int, unsigned int, unsigned long long, AP4_Atom*&) /src/targets/bento4_v1.6_641/repo/Source/C++/Core/Ap4AtomFactory.cpp:458:20 #5 0x4ee5a4 in AP4_AtomFactory::CreateAtomFromStream(AP4_ByteStream&, unsigned long long&, AP4_Atom*&) /src/targets/bento4_v1.6_641/repo/Source/C++/Core/Ap4AtomFactory.cpp:234:14 #6 0x4eddce in AP4_AtomFactory::CreateAtomFromStream(AP4_ByteStream&, AP4_Atom*&) /src/targets/bento4_v1.6_641/repo/Source/C++/Core/Ap4AtomFactory.cpp:154:12 #7 0x51bd8e in AP4_File::ParseStream(AP4_ByteStream&, AP4_AtomFactory&, bool) /src/targets/bento4_v1.6_641/repo/Source/C++/Core/Ap4File.cpp:104:12 #8 0x51c4bd in AP4_File::AP4_File(AP4_ByteStream&, bool) /src/targets/bento4_v1.6_641/repo/Source/C++/Core/Ap4File.cpp:78:5 #9 0x4cf155 in main /src/targets/bento4_v1.6_641/repo/Source/C++/Apps/Mp42Hls/Mp42Hls.cpp:1894:32 #10 0x7ebcef0fcc86 in __libc_start_main /build/glibc-CVJwZb/glibc-2.27/csu/../csu/libc-start.c:310 SUMMARY: AddressSanitizer: 1634 byte(s) leaked in 20 allocation(s).
Hi, Developers.
I have detected a memory leak crash at Ap4DataBuffer.cpp:210:28 in the latest tag version v1.6.0-641.
System
I discover this crash with a docker container configured with 1 CPU core of Intel(R) Xeon(R) Gold 5218R CPU @ 2.10GHz and the 64-bit Ubuntu 18.04 LTS.
Version
v1.6.0-641
Program
mp42hls
Build
Run
PoC
One PoC file in this zip.
bento4-poc1.zip
Crash