zip: fix a buffer overflow detected issue

A "buffer overflow detected" issue was observed as follows:
| *** buffer overflow detected ***: terminated
|
| zip error: Interrupted (aborting)

This issue is addressed by:
https://bugzilla.redhat.com/show_bug.cgi?id=2165653

Port the fix.

(From OE-Core rev: e2f3eeaedc0ea896f5f5b23f756056331b1647cf)

Signed-off-by: Ming Liu <liu.ming50@gmail.com>
Signed-off-by: Mathieu Dubois-Briand <mathieu.dubois-briand@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
Ming Liu 2025-05-16 10:17:31 +02:00 committed by Richard Purdie
parent a958799d37
commit af8b70d359
2 changed files with 39 additions and 0 deletions

View File

@ -0,0 +1,38 @@
From 23b4ed82bff20c737fe2e95d5b035e92a9522ca2 Mon Sep 17 00:00:00 2001
From: Ming Liu <liu.ming50@gmail.com>
Date: Thu, 15 May 2025 13:58:45 +0200
Subject: [PATCH] fileio.c: fix a buffer overflow detected issue
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Fix a following issue:
| *** buffer overflow detected ***: terminated
|
| zip error: Interrupted (aborting)
Reference: https://bugzilla.redhat.com/show_bug.cgi?id=2165653
Upstream-Status: Inactive-Upstream [the fix is from Redhat but not the official project]
Signed-off-by: Ming Liu <liu.ming50@gmail.com>
---
fileio.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/fileio.c b/fileio.c
index 1847e62..5a2959d 100644
--- a/fileio.c
+++ b/fileio.c
@@ -3502,7 +3502,7 @@ zwchar *local_to_wide_string(local_string)
if ((wc_string = (wchar_t *)malloc((wsize + 1) * sizeof(wchar_t))) == NULL) {
ZIPERR(ZE_MEM, "local_to_wide_string");
}
- wsize = mbstowcs(wc_string, local_string, strlen(local_string) + 1);
+ wsize = mbstowcs(wc_string, local_string, wsize + 1);
wc_string[wsize] = (wchar_t) 0;
/* in case wchar_t is not zwchar */
--
2.43.0

View File

@ -19,6 +19,7 @@ SRC_URI = "${SOURCEFORGE_MIRROR}/infozip/Zip%203.x%20%28latest%29/3.0/zip30.tar.
file://0001-configure-Specify-correct-function-signatures-and-de.patch \
file://0001-unix-configure-use-_Static_assert-to-do-correct-dete.patch \
file://0001-configure-Include-dirent.h-for-closedir-opendir-APIs.patch \
file://0001-fileio.c-fix-a-buffer-overflow-detected-issue.patch \
"
UPSTREAM_VERSION_UNKNOWN = "1"