You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
gentoo-overlay/media-libs/zxing-cpp/files/zxing-cpp-2.0.0-fix-crash.p...

25 lines
1.0 KiB

From 23c19c5f98602a4d69d1667fff99678308b28b5b Mon Sep 17 00:00:00 2001
From: liule <levie.liu@gmail.com>
Date: Fri, 6 Jan 2023 22:06:24 +0800
Subject: [PATCH] fix crash when the source image is less than 3 pixels
width/height
---
core/src/ReadBarcode.cpp | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/core/src/ReadBarcode.cpp b/core/src/ReadBarcode.cpp
index 905dd191c..5ac61e250 100644
--- a/core/src/ReadBarcode.cpp
+++ b/core/src/ReadBarcode.cpp
@@ -76,7 +76,8 @@ class LumImagePyramid
layers.push_back(iv);
// TODO: if only matrix codes were considered, then using std::min would be sufficient (see #425)
- while (threshold > 0 && std::max(layers.back().width(), layers.back().height()) > threshold)
+ while (threshold > 0 && std::max(layers.back().width(), layers.back().height()) > threshold &&
+ std::min(layers.back().width(), layers.back().height()) >= N)
addLayer();
#if 0
// Reversing the layers means we'd start with the smallest. that can make sense if we are only looking for a