There is a SEGV in PluginPFM.cpp while loading image with FreeImage_Load
function。
AddressSanitizer:DEADLYSIGNAL ================================================================= ==24231==ERROR: AddressSanitizer: SEGV on unknown address 0x613fa5f646c0 (pc 0x0000005a86b3 bp 0x7ffee3d2c080 sp 0x7ffee3d2b8e0 T0) ==24231==The signal is caused by a WRITE memory access. #0 0x5a86b2 in Load(FreeImageIO*, void*, int, int, void*) /home/src/freeimage-svn/FreeImage/trunk/Source/FreeImage/PluginPFM.cpp #1 0x5252fc in FreeImage_LoadFromHandle /home/src/freeimage-svn/FreeImage/trunk/Source/FreeImage/Plugin.cpp:388:24 #2 0x52550c in FreeImage_Load /home/src/freeimage-svn/FreeImage/trunk/Source/FreeImage/Plugin.cpp:408:22 #3 0x50640c in main /home/src/freeimage-svn/FreeImage/trunk/load-test.c:16:18 #4 0x7f6f56aa6b6a in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x26b6a) #5 0x428569 in _start (/home/src/freeimage-svn/FreeImage/trunk/load-test+0x428569) AddressSanitizer can not provide additional info. SUMMARY: AddressSanitizer: SEGV /home/src/freeimage-svn/FreeImage/trunk/Source/FreeImage/PluginPFM.cpp in Load(FreeImageIO*, void*, int, int, void*) ==24231==ABORTING
To reproduce it ,compile FreeImage with ASAN. Then compile and execute the test file in the attachment as follows:
Clang++ -g -fsanitize=address load-test.c -lfreeimage -L. -lm -o load-test ./load-test SEGV_PluginPFM_cpp
ADLab of Venustech
Hi,
This use case is fixed in the SVN
https://sourceforge.net/p/freeimage/svn/HEAD/tree/FreeImage/trunk/
The fix will be available in the next FreeImage release.
Hervé