fix a possible integer overflow in DFA matching (#305)

(cherry picked from commit 4c961f9db133a040e4c928e4685c7afdcb29ae61)
This commit is contained in:
xujing 2023-12-14 11:15:19 +08:00 committed by openeuler-sync-bot
parent 8dc6af78fe
commit 61c832fcf5
2 changed files with 29 additions and 1 deletions

View File

@ -0,0 +1,24 @@
From d231944236c6516de2831cbdde3069dab180ae81 Mon Sep 17 00:00:00 2001
From: pkuzco <b.naamneh@gmail.com>
Date: Mon, 9 Oct 2023 17:46:42 +0200
Subject: [PATCH] fix a possible integer overflow in DFA matching (#305)
---
src/pcre2_dfa_match.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/pcre2_dfa_match.c b/src/pcre2_dfa_match.c
index 518ac07..13b1ae4 100644
--- a/src/pcre2_dfa_match.c
+++ b/src/pcre2_dfa_match.c
@@ -428,7 +428,7 @@ overflow. */
else
{
- uint32_t newsize = (rws->size >= UINT32_MAX/2)? UINT32_MAX/2 : rws->size * 2;
+ uint32_t newsize = (rws->size >= UINT32_MAX/(sizeof(int)*2))? UINT32_MAX/sizeof(int) : rws->size * 2;
uint32_t newsizeK = newsize/(1024/sizeof(int));
if (newsizeK + mb->heap_used > mb->heap_limit)
--
2.33.0

View File

@ -1,6 +1,6 @@
Name: pcre2
Version: 10.39
Release: 9
Release: 10
Summary: Perl Compatible Regular Expressions
License: BSD
URL: http://www.pcre.org/
@ -30,6 +30,7 @@ Patch6019: backport-no-partial-match-if-trailing-data-is-invalid-utf-238.pat
Patch6020: backport-Fix-an-invalid-match-of-ascii-word-classes-when-inva.patch
Patch6021: backport-fix-wrong-test.patch
Patch6022: backport-fix-CVE-2022-41409.patch
Patch6023: backport-fix-a-possible-integer-overflow-in-DFA-matching-305.patch
BuildRequires: autoconf libtool automake coreutils gcc make readline-devel
Obsoletes: pcre2-utf16 pcre2-utf32 pcre2-tools
@ -146,6 +147,9 @@ make check
%{_pkgdocdir}/html/
%changelog
* Thu Dec 14 2023 xujing <xujing125@huawei.com> - 10.39-10
- DESC:fix a possible integer overflow in DFA matching (#305)
* Mon Jul 31 2023 yangmingtai <yangmingtai@huawei.com> - 10.39-9
- DESC:fix CVE-2022-41409