summaryrefslogtreecommitdiff
blob: e6b25633e8e98d4a0fbec9213814d643f5ee6dc0 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
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