Skip to content

Commit bfe8745

Browse files
Alexandre Avenelkimkulling
authored andcommitted
Add as unit-test an invalid PLY model triggering heap-buffer-overflow
==23896==ERROR: AddressSanitizer: heap-buffer-overflow on address 0x12f9daec1827 at pc 0x7ffcad83699c bp 0x00c61574c910 sp 0x00c61574c910 READ of size 1 at 0x12f9daec1827 thread T0 ==23896==WARNING: Failed to use and restart external symbolizer! #0 0x7ffcad83699b in Assimp::IOStreamBuffer<char>::getNextLine C:\Users\aavenel\Dev\assimp\include\assimp\IOStreamBuffer.h:299 #1 0x7ffcad83ce69 in Assimp::PLY::DOM::ParseHeader C:\Users\aavenel\Dev\assimp\code\AssetLib\Ply\PlyParser.cpp:428 #2 0x7ffcad83d58e in Assimp::PLY::DOM::ParseInstanceBinary C:\Users\aavenel\Dev\assimp\code\AssetLib\Ply\PlyParser.cpp:498 assimp#3 0x7ffcad83302a in Assimp::PLYImporter::InternReadFile C:\Users\aavenel\Dev\assimp\code\AssetLib\Ply\PlyLoader.cpp:189 assimp#4 0x7ffcad4f2f48 in Assimp::BaseImporter::ReadFile C:\Users\aavenel\Dev\assimp\code\Common\BaseImporter.cpp:135 assimp#5 0x7ffcad51ee46 in Assimp::Importer::ReadFile C:\Users\aavenel\Dev\assimp\code\Common\Importer.cpp:709 assimp#6 0x7ff7dd8f9f1a in ImportModel C:\Users\aavenel\Dev\assimp\tools\assimp_cmd\Main.cpp:307 assimp#7 0x7ff7dd8fdf9e in Assimp_Info C:\Users\aavenel\Dev\assimp\tools\assimp_cmd\Info.cpp:344 assimp#8 0x7ff7dd8fc04f in main C:\Users\aavenel\Dev\assimp\tools\assimp_cmd\Main.cpp:222 assimp#9 0x7ff7dd9030eb in __scrt_common_main_seh D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl:288 assimp#10 0x7ffd39e57343 in BaseThreadInitThunk+0x13 (C:\WINDOWS\System32\KERNEL32.DLL+0x180017343) assimp#11 0x7ffd3a2626b0 in RtlUserThreadStart+0x20 (C:\WINDOWS\SYSTEM32\ntdll.dll+0x1800526b0)
1 parent aae9369 commit bfe8745

File tree

2 files changed

+7
-0
lines changed

2 files changed

+7
-0
lines changed
Binary file not shown.

test/unit/utPLYImportExport.cpp

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -196,3 +196,10 @@ TEST_F(utPLYImportExport, parseErrorTest) {
196196
const aiScene *scene = importer.ReadFileFromMemory(test_file, strlen(test_file), 0);
197197
EXPECT_NE(nullptr, scene);
198198
}
199+
200+
// This file is invalid, we just want to ensure that the importer is not crashing
201+
TEST_F(utPLYImportExport, parseInvalid) {
202+
Assimp::Importer importer;
203+
const aiScene *scene = importer.ReadFile(ASSIMP_TEST_MODELS_DIR "/invalid/crash-30d6d0f7c529b3b66b4131700b7a4580cd7082df.ply", 0);
204+
EXPECT_EQ(nullptr, scene);
205+
}

0 commit comments

Comments
 (0)