Bug 230323 - ShowFoto and Digikam opening Olympus E-P2 ORF file will crash
Summary: ShowFoto and Digikam opening Olympus E-P2 ORF file will crash
Status: RESOLVED UPSTREAM
Alias: None
Product: digikam
Classification: Applications
Component: Showfoto-Load (show other bugs)
Version: 1.0.0
Platform: Unlisted Binaries Linux
: NOR crash
Target Milestone: ---
Assignee: Digikam Developers
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2010-03-11 15:09 UTC by peter.wu
Modified: 2022-02-04 22:41 UTC (History)
1 user (show)

See Also:
Latest Commit:
Version Fixed In: 1.2.0


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description peter.wu 2010-03-11 15:09:59 UTC
Application that crashed: showfoto
Version of the application: 1.0.0
KDE Version: 4.3.5 (KDE 4.3.5) "release 0"
Qt Version: 4.5.3
Operating System: Linux 2.6.31.12-0.1-desktop x86_64
Distribution: "openSUSE 11.2 (x86_64)"

What I was doing when the application crashed:
Opening raw file (ORF) of Olympus E-P2 will crash. Tried many version of digikam as well as newest dcraw, libkdcraw I can found.
The ORF of E-P1 was ok.

 -- Backtrace:
Application: showFoto (showfoto), signal: Segmentation fault
[Current thread is 1 (Thread 0x7ffc79bb1750 (LWP 14881))]

Thread 5 (Thread 0x7ffc697aa910 (LWP 14884)):
#0  0x00007ffc74c34049 in pthread_cond_wait@@GLIBC_2.3.2 () from /lib64/libpthread.so.0
#1  0x00007ffc77c7353b in QWaitCondition::wait(QMutex*, unsigned long) () from /usr/lib64/libQtCore.so.4
#2  0x00007ffc795d67a2 in Digikam::LoadSaveThread::run() () from /usr/lib64/libdigikamcore.so.1
#3  0x00007ffc77c72485 in ?? () from /usr/lib64/libQtCore.so.4
#4  0x00007ffc74c2f65d in start_thread () from /lib64/libpthread.so.0
#5  0x00007ffc768d5e1d in clone () from /lib64/libc.so.6
#6  0x0000000000000000 in ?? ()

Thread 4 (Thread 0x7ffc68fa9910 (LWP 14885)):
[KCrash Handler]
#5  0x00007ffc76884ae9 in ?? () from /lib64/libc.so.6
#6  0x00007ffc76882c32 in memmove () from /lib64/libc.so.6
#7  0x00007ffc73b65c73 in void std::vector<unsigned char, std::allocator<unsigned char> >::_M_assign_aux<unsigned char const*>(unsigned char const*, unsigned char const*, std::forward_iterator_tag)
    () from /usr/lib64/libexiv2.so.5
#8  0x00007ffc73b61565 in Exiv2::DataValue::read(unsigned char const*, long, Exiv2::ByteOrder) () from /usr/lib64/libexiv2.so.5
#9  0x00007ffc73b5b4cc in Exiv2::Internal::TiffReader::readTiffEntry(Exiv2::Internal::TiffEntryBase*) () from /usr/lib64/libexiv2.so.5
#10 0x00007ffc73b4c075 in Exiv2::Internal::TiffDirectory::doAccept(Exiv2::Internal::TiffVisitor&) () from /usr/lib64/libexiv2.so.5
#11 0x00007ffc73b4c021 in Exiv2::Internal::TiffSubIfd::doAccept(Exiv2::Internal::TiffVisitor&) () from /usr/lib64/libexiv2.so.5
#12 0x00007ffc73b4c075 in Exiv2::Internal::TiffDirectory::doAccept(Exiv2::Internal::TiffVisitor&) () from /usr/lib64/libexiv2.so.5
#13 0x00007ffc73b0a5c4 in Exiv2::Internal::TiffIfdMakernote::doAccept(Exiv2::Internal::TiffVisitor&) () from /usr/lib64/libexiv2.so.5
#14 0x00007ffc73b4bf99 in Exiv2::Internal::TiffMnEntry::doAccept(Exiv2::Internal::TiffVisitor&) () from /usr/lib64/libexiv2.so.5
#15 0x00007ffc73b4c075 in Exiv2::Internal::TiffDirectory::doAccept(Exiv2::Internal::TiffVisitor&) () from /usr/lib64/libexiv2.so.5
#16 0x00007ffc73b4c021 in Exiv2::Internal::TiffSubIfd::doAccept(Exiv2::Internal::TiffVisitor&) () from /usr/lib64/libexiv2.so.5
#17 0x00007ffc73b4c075 in Exiv2::Internal::TiffDirectory::doAccept(Exiv2::Internal::TiffVisitor&) () from /usr/lib64/libexiv2.so.5
#18 0x00007ffc73b52811 in Exiv2::Internal::TiffParserWorker::parse(unsigned char const*, unsigned int, unsigned int, Exiv2::Internal::TiffHeaderBase*) () from /usr/lib64/libexiv2.so.5
#19 0x00007ffc73b532aa in Exiv2::Internal::TiffParserWorker::decode(Exiv2::ExifData&, Exiv2::IptcData&, Exiv2::XmpData&, unsigned char const*, unsigned int, unsigned int, void (Exiv2::Internal::TiffDecoder::*(*)(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, unsigned int, unsigned short))(Exiv2::Internal::TiffEntryBase const*), Exiv2::Internal::TiffHeaderBase*) ()
   from /usr/lib64/libexiv2.so.5
#20 0x00007ffc73b221a7 in Exiv2::OrfParser::decode(Exiv2::ExifData&, Exiv2::IptcData&, Exiv2::XmpData&, unsigned char const*, unsigned int) () from /usr/lib64/libexiv2.so.5
#21 0x00007ffc73b22bc9 in Exiv2::OrfImage::readMetadata() () from /usr/lib64/libexiv2.so.5
#22 0x00007ffc791fe2ba in KExiv2Iface::KExiv2::load(QString const&) const () from /usr/lib64/libkexiv2.so.7
#23 0x00007ffc795623c9 in Digikam::DMetadata::load(QString const&) const () from /usr/lib64/libdigikamcore.so.1
#24 0x00007ffc7951950b in Digikam::DImgLoader::readMetadata(QString const&, Digikam::DImg::FORMAT) () from /usr/lib64/libdigikamcore.so.1
#25 0x00007ffc7952505e in Digikam::RAWLoader::load(QString const&, Digikam::DImgLoaderObserver*) () from /usr/lib64/libdigikamcore.so.1
#26 0x00007ffc7950d9ce in Digikam::DImg::load(QString const&, int, Digikam::DImgLoaderObserver*, Digikam::DRawDecoding) () from /usr/lib64/libdigikamcore.so.1
#27 0x00007ffc7950e365 in Digikam::DImg::load(QString const&, Digikam::DImgLoaderObserver*, Digikam::DRawDecoding) () from /usr/lib64/libdigikamcore.so.1
#28 0x00007ffc7950e8e8 in Digikam::DImg::DImg(QString const&, Digikam::DImgLoaderObserver*, Digikam::DRawDecoding) () from /usr/lib64/libdigikamcore.so.1
#29 0x00007ffc795e9fa0 in Digikam::SharedLoadingTask::execute() () from /usr/lib64/libdigikamcore.so.1
#30 0x00007ffc795d676c in Digikam::LoadSaveThread::run() () from /usr/lib64/libdigikamcore.so.1
#31 0x00007ffc77c72485 in ?? () from /usr/lib64/libQtCore.so.4
#32 0x00007ffc74c2f65d in start_thread () from /lib64/libpthread.so.0
#33 0x00007ffc768d5e1d in clone () from /lib64/libc.so.6
#34 0x0000000000000000 in ?? ()

Thread 3 (Thread 0x7ffc623a5910 (LWP 14895)):
#0  0x00007ffc74c34049 in pthread_cond_wait@@GLIBC_2.3.2 () from /lib64/libpthread.so.0
#1  0x00007ffc77c7353b in QWaitCondition::wait(QMutex*, unsigned long) () from /usr/lib64/libQtCore.so.4
#2  0x00007ffc795d67a2 in Digikam::LoadSaveThread::run() () from /usr/lib64/libdigikamcore.so.1
#3  0x00007ffc77c72485 in ?? () from /usr/lib64/libQtCore.so.4
#4  0x00007ffc74c2f65d in start_thread () from /lib64/libpthread.so.0
#5  0x00007ffc768d5e1d in clone () from /lib64/libc.so.6
#6  0x0000000000000000 in ?? ()

Thread 2 (Thread 0x7ffc53fff910 (LWP 14902)):
#0  0x00007ffc74c34049 in pthread_cond_wait@@GLIBC_2.3.2 () from /lib64/libpthread.so.0
#1  0x00007ffc77c7353b in QWaitCondition::wait(QMutex*, unsigned long) () from /usr/lib64/libQtCore.so.4
#2  0x00007ffc795d67a2 in Digikam::LoadSaveThread::run() () from /usr/lib64/libdigikamcore.so.1
#3  0x00007ffc77c72485 in ?? () from /usr/lib64/libQtCore.so.4
#4  0x00007ffc74c2f65d in start_thread () from /lib64/libpthread.so.0
#5  0x00007ffc768d5e1d in clone () from /lib64/libc.so.6
#6  0x0000000000000000 in ?? ()

Thread 1 (Thread 0x7ffc79bb1750 (LWP 14881)):
#0  0x00007ffc768ccd03 in poll () from /lib64/libc.so.6
#1  0x00007ffc6ef2791a in ?? () from /usr/lib64/libxcb.so.1
#2  0x00007ffc6ef292e4 in xcb_wait_for_reply () from /usr/lib64/libxcb.so.1
#3  0x00007ffc74585213 in _XReply () from /usr/lib64/libX11.so.6
#4  0x00007ffc74578fe3 in XSync () from /usr/lib64/libX11.so.6
#5  0x00007ffc772a7984 in qt_x11_wait_for_window_manager(QWidget*) () from /usr/lib64/libQtGui.so.4
#6  0x00007ffc7760d2a1 in QSplashScreen::finish(QWidget*) () from /usr/lib64/libQtGui.so.4
#7  0x000000000043ac00 in ShowFoto::ShowFoto::show() ()
#8  0x0000000000437196 in main ()

Reported using DrKonqi
Comment 1 caulier.gilles 2010-03-11 15:16:24 UTC
Sound like a crash in Exiv2 library.

Which Exiv2 version you use ? Go to Help/Components Info dialog for details.

Can you reproduce the crash with Exiv2 command line tool ?

Can you provide an ORF file to test here ?

Gilles Caulier
Comment 2 peter.wu 2010-03-11 17:12:25 UTC
Hi Gilles,

Thanks for your quick reply.

Yes exiv2 command also crashed with segmentation fault.
Version should be 0.18.2-3.1.

Sample can be downloaded http://www.frystock.com/tmp/P3101232.ORF.gz

Thanks!

Peter

On Thursday 11 March 2010 22:16:25 Gilles Caulier wrote:
> https://bugs.kde.org/show_bug.cgi?id=230323
> 
> 
> Gilles Caulier <caulier.gilles@gmail.com> changed:
> 
>            What    |Removed                     |Added
> ---------------------------------------------------------------------------
> - Version|unspecified                 |1.0.0
> 
> 
> 
> 
> --- Comment #1 from Gilles Caulier <caulier gilles gmail com>  2010-03-11
>  15:16:24 --- Sound like a crash in Exiv2 library.
> 
> Which Exiv2 version you use ? Go to Help/Components Info dialog for
>  details.
> 
> Can you reproduce the crash with Exiv2 command line tool ?
> 
> Can you provide an ORF file to test here ?
> 
> Gilles Caulier
>
Comment 3 Johannes Wienke 2010-03-11 17:20:25 UTC
I can confirm the bug with exiv2 0.18. Nevertheless, this works in exiv2 version 0.19.1. So please update your exiv2 version.
Comment 4 peter.wu 2010-03-11 17:36:33 UTC
Thanks. I updated exiv2 to 0.19.15 and exiv2 doesn't crash now.
However, showFoto or digikam still crash on opening.
Comment 5 Johannes Wienke 2010-03-11 17:40:33 UTC
They are probably still linked against the old version if you didn't recompile them. You need to recompile libkexiv and digikam.