Bug #1325
Crash in exiv2 - Nikon1MakerNote::printBarValue (nikonnm.cpp)
100%
Description
I have a bug in exiv2 when accessing pictures taken with Nikon camera
with gwenview.
Basically, the problem is the Nikon1MakerNote::printBarValue which
does not check for null exifData pointer (nikonnm.cpp:298)
std::ostream& Nikon1MakerNote::printBarValue(std::ostream& os,
const Value& value,
const ExifData* exifData)
{
Here is the stacktrace of the crash :
Thread 1 "gwenview" received signal SIGSEGV, Segmentation fault.
0x00007ffff0f9c1cf in Exiv2::ExifData::findKey (this=this@entry=0x0, key=...)
at /home/thibaud/work/pacman/exiv2/exiv2/repos/extra-x86_64/src/exiv2-0.26/src/exif.cpp:583
583 FindExifdatumByKey(key.key()));
(gdb) bt
#0 0x00007ffff0f9c1cf in Exiv2::ExifData::findKey
(this=this@entry=0x0, key=...)
at /home/thibaud/work/pacman/exiv2/exiv2/repos/extra-x86_64/src/exiv2-0.26/src/exif.cpp:583
#1 0x00007ffff0fd93eb in Exiv2::Internal::getKeyString (metadata=0x0,
key="Exif.MakerNote.ByteOrder", this=<optimized out>)
at /home/thibaud/work/pacman/exiv2/exiv2/repos/extra-x86_64/src/exiv2-0.26/src/nikonmn.cpp:291
#2 Exiv2::Internal::Nikon1MakerNote::printBarValue (os=...,
value=..., exifData=0x0)
at /home/thibaud/work/pacman/exiv2/exiv2/repos/extra-x86_64/src/exiv2-0.26/src/nikonmn.cpp:303
#3 0x00007ffff743987c in ?? () from /usr/lib/libgwenviewlib.so.5
#4 0x00007ffff7436809 in
Gwenview::ImageMetaInfoModel::setExiv2Image(Exiv2::Image const*) ()
from /usr/lib/libgwenviewlib.so.5
#5 0x00007ffff73e1398 in
Gwenview::Document::setExiv2Image(std::auto_ptr<Exiv2::Image>) () from
/usr/lib/libgwenviewlib.so.5
#6 0x00007ffff73dfcc2 in ?? () from /usr/lib/libgwenviewlib.so.5
#7 0x00007ffff73f4b1a in ?? () from /usr/lib/libgwenviewlib.so.5
#8 0x00007ffff37acc16 in QMetaObject::activate(QObject*, int, int,
void**) () from /usr/lib/libQt5Core.so.5
#9 0x00007ffff358fc03 in QFutureWatcherBase::event(QEvent*) () from
/usr/lib/libQt5Core.so.5
#10 0x00007ffff4ea0f2c in QApplicationPrivate::notify_helper(QObject*,
QEvent*) () from /usr/lib/libQt5Widgets.so.5
#11 0x00007ffff4ea8a06 in QApplication::notify(QObject*, QEvent*) ()
from /usr/lib/libQt5Widgets.so.5
#12 0x00007ffff377d060 in QCoreApplication::notifyInternal2(QObject*,
QEvent*) () from /usr/lib/libQt5Core.so.5
#13 0x00007ffff377f8b6 in
QCoreApplicationPrivate::sendPostedEvents(QObject*, int, QThreadData*)
()
from /usr/lib/libQt5Core.so.5
#14 0x00007ffff37d86e4 in ?? () from /usr/lib/libQt5Core.so.5
#15 0x00007fffebab9270 in g_main_context_dispatch () from
/usr/lib/libglib-2.0.so.0
#16 0x00007fffebabaf69 in ?? () from /usr/lib/libglib-2.0.so.0
#17 0x00007fffebabafae in g_main_context_iteration () from
/usr/lib/libglib-2.0.so.0
#18 0x00007ffff37d7cd1 in
QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>)
()
from /usr/lib/libQt5Core.so.5
#19 0x00007ffff377b48b in
QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from
/usr/lib/libQt5Core.so.5
#20 0x00007ffff37844d8 in QCoreApplication::exec() () from
/usr/lib/libQt5Core.so.5
#21 0x0000555555585bc4 in ?? ()
#22 0x00007ffff2dcef6a in __libc_start_main () from /usr/lib/libc.so.6
#23 0x000055555558606a in _start ()
(gdb) up
#1 0x00007ffff0fd93eb in Exiv2::Internal::getKeyString (metadata=0x0,
key="Exif.MakerNote.ByteOrder", this=<optimized out>)
at /home/thibaud/work/pacman/exiv2/exiv2/repos/extra-x86_64/src/exiv2-0.26/src/nikonmn.cpp:291
291 if ( metadata->findKey(ExifKey(key)) != metadata->end() ) {
(gdb) p metadata
$1 = (const Exiv2::ExifData *) 0x0
Files
History
Updated by Thibaud Mouton almost 4 years ago
Sorry, the issue has already been fixed in the latest git branch. I was looking in the 0.26 branch.
Can then be closed
Updated by Robin Mills almost 4 years ago
- Category set to metadata
- Status changed from New to Closed
- Assignee set to Robin Mills
- Priority changed from High to Normal
- Target version set to 0.27
- % Done changed from 0 to 100
- Estimated time set to 1.00 h