Project

General

Profile

Bug #997

exiv2 causing digikam to crash on .mp3, .ogg, and .xcf files

Added by Kenneth Ingham about 7 years ago. Updated about 7 years ago.

Status:
Rejected
Priority:
Immediate
Assignee:
-
Category:
-
Start date:
16 Nov 2014
Due date:
% Done:

0%

Estimated time:

Description

See the following bugs:
https://bugs.kde.org/show_bug.cgi?id=341024
https://bugs.kde.org/show_bug.cgi?id=340696
https://bugzilla.opensuse.org/show_bug.cgi?id=904446

Short summary is that digikam is crashing in exiv2 all the time. I moved all photos away and ran tests with individual files and identified that .xcf and .mp3 files both would cause digikam to crash. Given that Gimp is my primary image editor, this bug makes digikam completely unusable.

I can run tests if you need them.

I am using libexiv2-13-0.24-4.1.9.x86_64 from the OpenSUSE 13.2 repository.


Files

bensound-theelevatorbossanova.mp3 (3.4 MB) bensound-theelevatorbossanova.mp3 Sample mp3 file that causes an exception in exiv2 Kenneth Ingham, 17 Nov 2014 02:13
waterfall-1355.xcf (1.25 MB) waterfall-1355.xcf Simple gimp file that causes exiv2 exception Kenneth Ingham, 17 Nov 2014 02:17
dk (15.6 KB) dk Output of ldd on digikam and libkexiv2 Kenneth Ingham, 18 Nov 2014 02:23

History

#1

Updated by Kenneth Ingham about 7 years ago

I just built libexiv2 from the latest sources from svn and digikam still crashes.

#2

Updated by Andreas Huggel about 7 years ago

Kenneth,
Can you provide a (small) sample file that triggers a crash?
Can you re-create the crash with the exiv2 command line tool alone?

Andreas

#3

Updated by Kenneth Ingham about 7 years ago

I tried this command:
exiv2 Southwind.mp3
Exiv2 exception in print action for file Southwind.mp3:
Southwind.mp3: The file contains data of an unknown image type

This happened for every mp3 file I tried, including the attached one which I just got from http://www.bensound.com. I have no affiliation with that web site other than grabbing a creative commons licensed music file.

I do not know if the exception mentioned is the one that is killing digikam. According to Gilles Caulier in
https://bugs.kde.org/show_bug.cgi?id=341024
what killed digikam was an exception.

#4

Updated by Kenneth Ingham about 7 years ago

I get a similar response when asking it about a Gimp file:

ingham@socrates:tmp$ exiv2 waterfall-1355.xcf
Exiv2 exception in print action for file waterfall-1355.xcf:
waterfall-1355.xcf: The file contains data of an unknown image type

#5

Updated by Andreas Huggel about 7 years ago

  • Status changed from New to Rejected

The Exiv2 library throws an exception if finds that the input file format is not supported. This is the standard Exiv2 error handling procedure. The application that uses the Exiv2 library has to catch this exception and deal with it, as the Exiv2 command line tool demonstrates.

Apparently for files of certain formats, the exception is not caught in digiKam yet.

I'm closing this bug, it is an issue that needs to be fixed in digiKam.

#6

Updated by Gilles Caulier about 7 years ago

libkexiv2 already catch all Exiv2 and C++ exceptions in current implementation.

This must prevent a crash in digiKam in all cases.

perhaps user do not have a recent libkexiv2 in computer.

#7

Updated by Gilles Caulier about 7 years ago

Note : here with current implementation, digiKam do not crash with XCF, OGG, or MP3 files.

#8

Updated by Raymond Wooninck about 7 years ago

@Gilles,

The user is using the libkexiv2 that was shipped with KDE 4.14.2. As far as I can see there are not many commits after. openSUSE 13.2 should receive soon the update to KDE 4.14.3, but if you could pinpoint a particular a particular commit that should fix this then we can test it.

Thanks

Raymond

#9

Updated by Gilles Caulier about 7 years ago

Raymond,

Look this commit :

https://projects.kde.org/projects/kde/kdegraphics/libs/libkexiv2/repository/revisions/8a8dc535d504b70776677b933ac761bba0f7a4ae

Andreas,

Can you check if this commit is enough to handle all Exiv2 exception ?

Gilles

#10

Updated by Andreas Huggel about 7 years ago

Yes, a catch-all should work of course. Provided the exception occurs within a try-catch block.

If so, it could be due to more obscure issues with exceptions across library boundaries. Similarly if the exception happens in a plugin (loaded with dlopen).

Kenneth, assuming you are on Linux, can you show the output of ldd `which digikam` and the same for your libkexiv2?

#11

Updated by Kenneth Ingham about 7 years ago

Here it is. Thanks.

Also available in: Atom PDF