Bug 470880 - Crash while opening .nef raw image
Summary: Crash while opening .nef raw image
Status: RESOLVED FIXED
Alias: None
Product: gwenview
Classification: Applications
Component: general (show other bugs)
Version: 23.04.2
Platform: Arch Linux Linux
: HI crash
Target Milestone: ---
Assignee: Gwenview Bugs
URL:
Keywords: drkonqi
: 470940 471031 471914 472067 472068 478195 (view as bug list)
Depends on:
Blocks:
 
Reported: 2023-06-10 17:49 UTC by David Strobach
Modified: 2023-12-07 11:26 UTC (History)
8 users (show)

See Also:
Latest Commit:
Version Fixed In: 23.04.3


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description David Strobach 2023-06-10 17:49:47 UTC
Application: gwenview (23.04.2)

Qt Version: 5.15.9
Frameworks Version: 5.106.0
Operating System: Linux 6.3.6-arch1-1 x86_64
Windowing System: Wayland
Distribution: "Arch Linux"
DrKonqi: 5.27.5 [KCrashBackend]

-- Information about the crash:
Gwenview reproducibly crashes while attempting to open some Nikon .nef raw image files. The files may possibly be corrupted. They can, however, be succesfully opened/edited in DarkTable and ImageMagick's `identify -verbose` doesn't complain either.

The crash can be reproduced every time.

-- Backtrace:
Application: Gwenview (gwenview), signal: Segmentation fault
Content of s_kcrashErrorMessage: std::unique_ptr<char []> = {get() = <optimized out>}
[KCrash Handler]
#6  0x00007f70a97c97ab in std::__cxx11::list<Exiv2::Exifdatum, std::allocator<Exiv2::Exifdatum> >::begin (this=<optimized out>, this=<optimized out>) at /usr/include/c++/13.1.1/bits/stl_list.h:1033
#7  Exiv2::ExifData::findKey (this=0x0, key=...) at /usr/src/debug/exiv2/exiv2-0.28.0/src/exif.cpp:457
#8  0x00007f70a975442f in Exiv2::Internal::Nikon3MakerNote::printFlashMasterDataFl7 (os=..., value=..., metadata=0x0) at /usr/src/debug/exiv2/exiv2-0.28.0/src/nikonmn_int.cpp:3423
#9  0x00007f70a97c0914 in Exiv2::Exifdatum::write (this=0x7f706c08c050, os=..., pMetadata=0x0) at /usr/src/debug/exiv2/exiv2-0.28.0/src/exif.cpp:187
#10 0x00007f70aa6231f4 in Exiv2::operator<< (md=..., os=...) at /usr/include/exiv2/metadatum.hpp:277
#11 Gwenview::ImageMetaInfoModelPrivate::fillExivGroup<Exiv2::ExifData, std::_List_const_iterator<Exiv2::Exifdatum> > (container=..., group=0x55d0a86c6560, parent=..., this=0x55d0a86c6540) at /usr/src/debug/gwenview/gwenview-23.04.2/lib/imagemetainfomodel.cpp:282
#12 Gwenview::ImageMetaInfoModel::setExiv2Image (this=0x55d0a8829fe0, image=0x7f706c001960) at /usr/src/debug/gwenview/gwenview-23.04.2/lib/imagemetainfomodel.cpp:441
#13 0x00007f70aa5e7c21 in Gwenview::Document::setExiv2Image (this=0x55d0a8736590, image=...) at /usr/src/debug/gwenview/gwenview-23.04.2/lib/document/document.cpp:388
#14 0x00007f70aa5f2d8e in Gwenview::AbstractDocumentImpl::setDocumentExiv2Image (this=0x55d0a887c6d0, image=std::unique_ptr<Exiv2::Image> = {...}) at /usr/src/debug/gwenview/gwenview-23.04.2/lib/document/abstractdocumentimpl.cpp:81
#15 Gwenview::LoadingDocumentImpl::slotMetaInfoLoaded (this=0x55d0a887c6d0) at /usr/src/debug/gwenview/gwenview-23.04.2/lib/document/loadingdocumentimpl.cpp:497
#16 0x00007f70a82cffe7 in QtPrivate::QSlotObjectBase::call (a=<optimized out>, r=<optimized out>, this=<optimized out>, this=<optimized out>, r=<optimized out>, a=<optimized out>) at ../../include/QtCore/../../src/corelib/kernel/qobjectdefs_impl.h:398
#17 doActivate<false> (sender=0x55d0a8680418, signal_index=4, argv=0x7ffd87cf8600) at kernel/qobject.cpp:3923
#18 0x00007f70a80fd0d5 in QFutureWatcherBase::event (this=<optimized out>, event=0x7f706c05da20) at thread/qfuturewatcher.cpp:334
#19 0x00007f70a8f7893f in QApplicationPrivate::notify_helper (this=<optimized out>, receiver=0x55d0a8680418, e=0x7f706c05da20) at kernel/qapplication.cpp:3640
#20 0x00007f70a829ab18 in QCoreApplication::notifyInternal2 (receiver=0x55d0a8680418, event=0x7f706c05da20) at kernel/qcoreapplication.cpp:1064
#21 0x00007f70a829fa7b in QCoreApplicationPrivate::sendPostedEvents (receiver=0x0, event_type=0, data=0x55d0a8018b20) at kernel/qcoreapplication.cpp:1821
#22 0x00007f70a82e6088 in postEventSourceDispatch (s=0x55d0a802a140) at kernel/qeventdispatcher_glib.cpp:277
#23 0x00007f70a6110981 in g_main_dispatch (context=0x7f709c000ee0) at ../glib/glib/gmain.c:3460
#24 g_main_context_dispatch (context=0x7f709c000ee0) at ../glib/glib/gmain.c:4200
#25 0x00007f70a616db39 in g_main_context_iterate.isra.0 (context=context@entry=0x7f709c000ee0, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>) at ../glib/glib/gmain.c:4276
#26 0x00007f70a610e032 in g_main_context_iteration (context=0x7f709c000ee0, may_block=1) at ../glib/glib/gmain.c:4343
#27 0x00007f70a82e9f0c in QEventDispatcherGlib::processEvents (this=0x55d0a80449a0, flags=...) at kernel/qeventdispatcher_glib.cpp:423
#28 0x00007f70a8299824 in QEventLoop::exec (this=this@entry=0x7ffd87cf8a30, flags=..., flags@entry=...) at ../../include/QtCore/../../src/corelib/global/qflags.h:69
#29 0x00007f70a829acc3 in QCoreApplication::exec () at ../../include/QtCore/../../src/corelib/global/qflags.h:121
#30 0x00007f70a873b7c2 in QGuiApplication::exec () at kernel/qguiapplication.cpp:1870
#31 0x00007f70a8f76cda in QApplication::exec () at kernel/qapplication.cpp:2832
#32 0x000055d0a6e6ea49 in main (argc=<optimized out>, argv=<optimized out>) at /usr/src/debug/gwenview/gwenview-23.04.2/app/main.cpp:213
[Inferior 1 (process 17812) detached]

Reported using DrKonqi
Comment 1 Nicolas Fella 2023-06-11 17:07:08 UTC
Can you attach one of the affected files?
Comment 2 David Strobach 2023-06-11 18:08:39 UTC
(In reply to Nicolas Fella from comment #1)
> Can you attach one of the affected files?

Nope, not really, because of the size limit.
You can, however, download it here: https://mega.nz/file/j3RGELSa#wMs5nJ-HlrMZrjytiC9NkESXF6TRIIVzPDlZsa-uI3E
Comment 3 Nicolas Fella 2023-06-11 20:56:33 UTC
Thanks. This appears to be a regression from exiv 0.28. I've opened https://github.com/Exiv2/exiv2/issues/2649 for this
Comment 4 Nicolas Fella 2023-06-12 13:51:21 UTC
*** Bug 470940 has been marked as a duplicate of this bug. ***
Comment 5 Antonio Rojas 2023-06-14 18:22:10 UTC
*** Bug 471031 has been marked as a duplicate of this bug. ***
Comment 6 Nate Graham 2023-06-28 14:16:14 UTC
Git commit d2869e825a565d44e06f461058c60a4483af274e by Nate Graham, on behalf of Kevin Backhouse.
Committed on 28/06/2023 at 14:16.
Pushed by ngraham into branch 'master'.

Pass exivData as argument to avoid crash in exiv2 library

This should fix the bug reported at https://github.com/Exiv2/exiv2/issues/2649.

Exiv2 will be made more robust against this, but this commit should get
Gwenview unstuck in the meantime.
FIXED-IN: 23.04.1

M  +6    -6    lib/imagemetainfomodel.cpp

https://invent.kde.org/graphics/gwenview/-/commit/d2869e825a565d44e06f461058c60a4483af274e
Comment 7 Nate Graham 2023-06-28 14:16:30 UTC
Git commit c15f7b79d68a583359ae597ca5cb405719501c0e by Nate Graham, on behalf of Kevin Backhouse.
Committed on 28/06/2023 at 14:16.
Pushed by ngraham into branch 'release/23.04'.

Pass exivData as argument to avoid crash in exiv2 library

This should fix the bug reported at https://github.com/Exiv2/exiv2/issues/2649.

Exiv2 will be made more robust against this, but this commit should get
Gwenview unstuck in the meantime.
FIXED-IN: 23.04.1


(cherry picked from commit d2869e825a565d44e06f461058c60a4483af274e)

M  +6    -6    lib/imagemetainfomodel.cpp

https://invent.kde.org/graphics/gwenview/-/commit/c15f7b79d68a583359ae597ca5cb405719501c0e
Comment 8 Nicolas Fella 2023-07-08 11:54:52 UTC
*** Bug 472068 has been marked as a duplicate of this bug. ***
Comment 9 Nicolas Fella 2023-07-08 11:55:10 UTC
*** Bug 471914 has been marked as a duplicate of this bug. ***
Comment 10 Nicolas Fella 2023-07-08 11:55:24 UTC
*** Bug 472067 has been marked as a duplicate of this bug. ***
Comment 11 Antonio Rojas 2023-12-07 11:26:00 UTC
*** Bug 478195 has been marked as a duplicate of this bug. ***