https://bugs.kde.org/show_bug.cgi?id=367640
Bug ID: 367640 Summary: Crash when decoding Canon RAW file using VNG with libraw 0.18 Product: digikam Version: 5.1.0 Platform: Compiled Sources URL: https://www.dropbox.com/s/b51ff1u2o8bthln/IMG_5249.CR2 ?dl=0 OS: Linux Status: UNCONFIRMED Severity: crash Priority: NOR Component: Raw-Engine Assignee: digikam-de...@kde.org Reporter: andrew.i.co...@googlemail.com Opening a raw from my camera (e.g. https://www.dropbox.com/s/b51ff1u2o8bthln/IMG_5249.CR2?dl=0 ) causes a segfault in RAW decoding in digikam 5.1 and current HEAD from git; but not in digikam 5.0. This is due to commit d0a60f5f02890de9e5a5a3e312511930f3cf72a5, which upgraded libraw to 0.18.0 beta. Reverting the commit and resolving merge conflicts fixes the issue. Reproducible: Always Steps to Reproduce: 1. Open the Image Editor for a CR2 RAW file (e.g. https://www.dropbox.com/s/b51ff1u2o8bthln/IMG_5249.CR2?dl=0) Actual Results: Segfault Expected Results: Should open RAW image for editing Relevant valgrind output: ==12797== Thread 17 Thread (pooled): ==12797== Invalid write of size 4 ==12797== at 0x6364DA3: LibRaw::vng_interpolate() (dcraw_common.cpp:4683) ==12797== by 0x633BFF7: LibRaw::dcraw_process() (libraw_cxx.cpp:4143) ==12797== by 0x5EB4826: RawEngine::DRawDecoder::Private::loadFromLibraw(QString const&, QByteArray&, int&, int&, int&) (drawdecoder_p.cpp:516) ==12797== by 0x5EB23A2: RawEngine::DRawDecoder::decodeRAWImage(QString const&, RawEngine::DRawDecoderSettings const&, QByteArray&, int&, int&, int&) (drawdecoder.cpp:473) ==12797== by 0x5C188FC: Digikam::RAWLoader::load(QString const&, Digikam::DImgLoaderObserver*) (rawloader.cpp:113) ==12797== by 0x5D9EDAA: Digikam::DImg::load(QString const&, int, Digikam::DImgLoaderObserver*, Digikam::DRawDecoding const&) (dimg.cpp:497) ==12797== by 0x5D9E00E: Digikam::DImg::load(QString const&, Digikam::DImgLoaderObserver*, Digikam::DRawDecoding const&) (dimg.cpp:369) ==12797== by 0x5D9D226: Digikam::DImg::DImg(QString const&, Digikam::DImgLoaderObserver*, Digikam::DRawDecoding const&) (dimg.cpp:107) ==12797== by 0x5E5D540: Digikam::LoadingTask::execute() (loadsavetask.cpp:49) ==12797== by 0x5E4D3FE: Digikam::LoadSaveThread::run() (loadsavethread.cpp:133) ==12797== by 0x5E94AD7: Digikam::DynamicThread::DynamicThreadPriv::run() (dynamicthread.cpp:183) ==12797== by 0x800C342: ??? (in /usr/lib/x86_64-linux-gnu/libQt5Core.so.5.5.1) ==12797== Address 0x88cdd7d0 is 0 bytes after a block of size 20,480 alloc'd ==12797== at 0x4C2FB55: calloc (vg_replace_malloc.c:711) ==12797== by 0x6333B3E: calloc (libraw_alloc.h:48) ==12797== by 0x6333B3E: LibRaw::calloc(unsigned long, unsigned long) (libraw_cxx.cpp:472) ==12797== by 0x6364C06: LibRaw::vng_interpolate() (dcraw_common.cpp:4665) ==12797== by 0x633BFF7: LibRaw::dcraw_process() (libraw_cxx.cpp:4143) ==12797== by 0x5EB4826: RawEngine::DRawDecoder::Private::loadFromLibraw(QString const&, QByteArray&, int&, int&, int&) (drawdecoder_p.cpp:516) ==12797== by 0x5EB23A2: RawEngine::DRawDecoder::decodeRAWImage(QString const&, RawEngine::DRawDecoderSettings const&, QByteArray&, int&, int&, int&) (drawdecoder.cpp:473) ==12797== by 0x5C188FC: Digikam::RAWLoader::load(QString const&, Digikam::DImgLoaderObserver*) (rawloader.cpp:113) ==12797== by 0x5D9EDAA: Digikam::DImg::load(QString const&, int, Digikam::DImgLoaderObserver*, Digikam::DRawDecoding const&) (dimg.cpp:497) ==12797== by 0x5D9E00E: Digikam::DImg::load(QString const&, Digikam::DImgLoaderObserver*, Digikam::DRawDecoding const&) (dimg.cpp:369) ==12797== by 0x5D9D226: Digikam::DImg::DImg(QString const&, Digikam::DImgLoaderObserver*, Digikam::DRawDecoding const&) (dimg.cpp:107) ==12797== by 0x5E5D540: Digikam::LoadingTask::execute() (loadsavetask.cpp:49) ==12797== by 0x5E4D3FE: Digikam::LoadSaveThread::run() (loadsavethread.cpp:133) -- You are receiving this mail because: You are watching all bug changes.