[digikam] [Bug 367640] New: Crash when decoding Canon RAW file using VNG with libraw 0.18

Andrew Coles via KDE Bugzilla bugzilla_noreply at kde.org
Sun Aug 21 13:33:51 BST 2016


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-devel at kde.org
          Reporter: andrew.i.coles at 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 the assignee for the bug.



More information about the Digikam-devel mailing list