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.

Reply via email to