[digikam] [Bug 524477] New: Crash viewing image

Graham <[email protected]>
Newsgroups gmane.comp.kde.devel.bugs
Message-ID <[email protected]/>
https://bugs.kde.org/show_bug.cgi?id=524477

            Bug ID: 524477
           Summary: Crash viewing image
    Classification: Applications
           Product: digikam
      Version First 9.2.0
       Reported In:
          Platform: Other
                OS: macOS
            Status: REPORTED
          Severity: crash
          Priority: NOR
         Component: general
          Assignee: [email protected]
          Reporter: [email protected]
  Target Milestone: ---

Created attachment 195292
  --> https://bugs.kde.org/attachment.cgi?id=195292&action=edit
Full MacOS crash dump

DESCRIPTION - crash dump attached
The crash is a pointer-authentication trap (EXC_BREAKPOINT / SIGTRAP, ESR =
"pointer authentication trap DA") on the main thread, not a normal segfault.
Root cause chain, reading the stack top-down:

1. Clicked-and-held on the image view to start panning (mouse-drag pan on a
zoomed image): Digikam::GraphicsDImgView::mousePressEvent → startPanning(QPoint
const&).
2. That calls QWidget::setCursor() to switch to the "hand" panning cursor.
3. Qt builds the cursor's native representation via QImage::toCGImage(), which
calls CGImageCreate().
4. CGImageCreate validates the image's colorspace (verify_image_parameters →
valid_image_colorspace → CGColorSpaceGetType → CFGetTypeID).
5. CFGetTypeID calls __CF_IS_OBJC to check whether the pointer it was handed is
a real Objective-C/CF object — and that check traps.

Register x0 at the crash (the object being checked) is 0x102 — a tiny integer,
not a valid heap pointer. So the colorspace reference being passed into
CGImageCreate for the cursor image is garbage/corrupt, and on Apple Silicon
with pointer authentication enabled, dereferencing a bogus pointer as an object
trips a PAC trap instead of a quiet segfault.

In plain terms: digiKam's Qt6 image-panning cursor code is building/passing an
invalid QImage/colorspace when generating the "grab" cursor, and CoreGraphics's
strict pointer-authentication check on macOS 26 catches the bad pointer and
aborts the process. This looks like a Qt6/digiKam bug in the cursor-image
conversion path (GraphicsDImgView::startPanning → QImage::toCGImage), triggered
specifically when starting a pan-drag on an image — likely image-format or
bit-depth dependent (e.g. a particular colorspace/ICC profile on the loaded
image confusing the cursor pixmap).

DigiKam/Qt bug on Apple Silicon + macOS 26.


STEPS TO REPRODUCE
Intermittent issue due to the mouse click and pan. Occurred a number of times
over the last few weeks.

MacOS 26.6.1
DigiKam 9.2

ADDITIONAL INFORMATION
crash dump attached

-- 
You are receiving this mail because:
You are watching all bug changes.
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.