https://bugs.kde.org/show_bug.cgi?id=517942

            Bug ID: 517942
           Summary: crash: ASSERT failure in constexpr
                    QtPrivate::QCheckedIntegers::QCheckedInt<int>
                    QtPrivate::QCheckedIntegers::operator-(QCheckedInt<int
                    >, QCheckedInt<int>): "Overflow in operator-", file
                    /usr/include/qt6/QtCore/qcheckedint_impl.h, line 69
    Classification: Applications
           Product: digikam
      Version First 8.8.0
       Reported In:
          Platform: Manjaro
                OS: Linux
            Status: REPORTED
          Severity: normal
          Priority: NOR
         Component: Faces-Detection
          Assignee: [email protected]
          Reporter: [email protected]
  Target Milestone: ---

SUMMARY

when I click on "scan for faces" when digikam starts, it crashes after several
seconds with this log:

STEPS TO REPRODUCE
1. aFAsaEzQqM found a way to reproduce the crash, see
https://discuss.kde.org/t/digikam-crashes-when-starting-to-scan-faces-with-qt6-error/43970/2?u=peta
2. "I just now created a new screenshot with the dimensions 1273:23 pixels and
put that in a new empty album. Trying to view that album or scanning its faces
also caused the same crash."

OBSERVED RESULT

ASSERT failure in constexpr QtPrivate::QCheckedIntegers::QCheckedInt<int>
QtPrivate::QCheckedIntegers::operator-(QCheckedInt<int>, QCheckedInt<int>):
"Overflow in operator-", file /usr/include/qt6/QtCore/qcheckedint_impl.h, line
69
[1]    6076 IOT instruction (core dumped)  digikam

EXPECTED RESULT

well, should not crash :-D

SOFTWARE/OS VERSIONS
Linux/KDE Plasma: Manjaro Linux x86_64
KDE Plasma Version: 6.5.5
KDE Frameworks Version: 6.23.0
Qt Version: 6.10.2

ADDITIONAL INFORMATION

britiger suggested a fix:

diff --git
a/core/utilities/facemanagement/pipelines/detectrecognize/facepipelinedetectrecognize.cpp
b/core/utilities/facemanagement/pipelines/detectrecognize/facepipelinedetectrecognize.cpp
index 43d6ba65d1..3d54c14f1b 100644
---
a/core/utilities/facemanagement/pipelines/detectrecognize/facepipelinedetectrecognize.cpp
+++
b/core/utilities/facemanagement/pipelines/detectrecognize/facepipelinedetectrecognize.cpp
@@ -415,6 +415,10 @@ bool FacePipelineDetectRecognize::extractor()
                 int width   = static_cast<int>(detectionResults.at<float>(i,
2));
                 int height  = static_cast<int>(detectionResults.at<float>(i,
3));

+                if(qMin(X, Y) == std::numeric_limits<int>::min() ||
qMin(width, height) == std::numeric_limits<int>::min()) {
+                    qCWarning(DIGIKAM_FACESENGINE_LOG) << "Invalid
detectionResults rect (INT_MIN) for image" << package->info.filePath();
+                    continue;
+                }
                 // Add the rect to result list.

                 faceFRects << QRectF(qreal(X)      /
qreal(cvUResizedImage.cols),

see
https://discuss.kde.org/t/digikam-crashes-when-starting-to-scan-faces-with-qt6-error/43970/4?u=peta

-- 
You are receiving this mail because:
You are watching all bug changes.

Reply via email to