Bug 516557 - Segfault when loading COG TIFF file
Summary: Segfault when loading COG TIFF file
Status: REPORTED
Alias: None
Product: gwenview
Classification: Applications
Component: general (other bugs)
Version First Reported In: 25.12.2
Platform: Fedora RPMs Linux
: NOR crash
Target Milestone: ---
Assignee: Gwenview Bugs
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2026-02-23 04:15 UTC by ashduino101
Modified: 2026-02-23 17:11 UTC (History)
1 user (show)

See Also:
Latest Commit:
Version Fixed/Implemented In:
Sentry Crash Report:


Attachments
MRE image file that causes the bug (17.03 KB, image/tiff)
2026-02-23 04:15 UTC, ashduino101
Details

Note You need to log in before you can comment on or make changes to this bug.
Description ashduino101 2026-02-23 04:15:53 UTC
Created attachment 189977 [details]
MRE image file that causes the bug

SUMMARY
When loading a COG (Cloud Optimized GeoTIFF) file in Gwenview, it segfaults at `fetchIndexedToARGB32PM<(QPixelLayout::BPP)3>` on the first row of pixels. 

The cause seems to be the `clut` parameter being null:
---
fetchIndexedToARGB32PM<(QPixelLayout::BPP)3> (buffer=0x7fffaa7fc650, src=0x555556518a40 "", index=0, count=504, clut=0x0)
    at /usr/src/debug/qt6-qtbase-6.10.1-3.fc43.x86_64/src/gui/painting/qpixellayout.cpp:774
774             buffer[i] = qPremultiply(clut->at(s))
---

STEPS TO REPRODUCE
1. Try loading the attached image file
2. Observe that the program segfaults

OBSERVED RESULT
Segmentation fault
Backtrace:
---
#0  fetchIndexedToARGB32PM<(QPixelLayout::BPP)3>
    (buffer=0x7fffaa7fc650, src=0x5555566bb090 "", index=0, count=504, clut=0x0)
    at /usr/src/debug/qt6-qtbase-6.10.1-3.fc43.x86_64/src/gui/painting/qpixellayout.cpp:774
#1  0x00007ffff5f5a69d in operator() (__closure=0x7fffffff8700, cStart=<optimized out>, cEnd=<optimized out>)
    at /usr/src/debug/qt6-qtbase-6.10.1-3.fc43.x86_64/src/gui/painting/qdrawhelper.cpp:4399
#2  0x00007ffff5f61135 in operator() (__closure=0x55555624a728)
    at /usr/src/debug/qt6-qtbase-6.10.1-3.fc43.x86_64/src/gui/painting/qdrawhelper.cpp:4412
#3  QRunnable::QGenericRunnable::Helper<blend_untransformed_generic(int, const QT_FT_Span*, void*)::<lambda()> >::impl(QRunnable::QGenericRunnable::HelperBase::Op, QRunnable::QGenericRunnable::HelperBase *, void *)
    (op=<optimized out>, that=0x55555624a720, arg=<optimized out>)
    at /usr/src/debug/qt6-qtbase-6.10.1-3.fc43.x86_64/src/corelib/thread/qrunnable.h:74
#4  0x00007ffff522fa68 in QThreadPoolThread::run (this=0x555556223f90)
    at /usr/src/debug/qt6-qtbase-6.10.1-3.fc43.x86_64/src/corelib/thread/qthreadpool.cpp:72
#5  0x00007ffff52d19ae in operator() (__closure=<optimized out>)
    at /usr/src/debug/qt6-qtbase-6.10.1-3.fc43.x86_64/src/corelib/thread/qthread_unix.cpp:437
#6  (anonymous namespace)::terminate_on_exception<QThreadPrivate::start(void*)::<lambda()> > (t=<optimized out>)
    at /usr/src/debug/qt6-qtbase-6.10.1-3.fc43.x86_64/src/corelib/thread/qthread_unix.cpp:367
#7  QThreadPrivate::start (arg=0x555556223f90)
--Type <RET> for more, q to quit, c to continue without paging--c
    at /usr/src/debug/qt6-qtbase-6.10.1-3.fc43.x86_64/src/corelib/thread/qthread_unix.cpp:397
#8  0x00007ffff4a7f464 in start_thread (arg=<optimized out>) at pthread_create.c:448
#9  0x00007ffff4b025ec in __GI___clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:78
---
It looks like a BPP of 3 refers to 8 bits per pixel, which seems to be correct, if it helps.

EXPECTED RESULT
The image loads and displays properly (at least as a standard 8BPP grayscale image--I don't necessarily expect it to load the symbology/palette and everything, though it would be convenient if it did).

SOFTWARE/OS VERSIONS
Operating System: Fedora Linux 43
KDE Plasma Version: 6.6.0
KDE Frameworks Version: 6.23.0
Qt Version: 6.10.1
Kernel Version: 6.17.5-300.fc43.x86_64 (64-bit)
Graphics Platform: Wayland
Processors: 16 × AMD Ryzen 7 260 w/ Radeon 780M Graphics
Memory: 32 GiB of RAM (30.6 GiB usable)
Graphics Processor: AMD Radeon 780M Graphics
Manufacturer: LENOVO
Product Name: 83M0
System Version: Legion 5 15AHP10

ADDITIONAL INFORMATION
Krita and Okular load this image perfectly fine, even assigning the palette colors and everything.
KolourPaint sometimes crashes and loads the image incorrectly, see #516556