summarylogtreecommitdiffstats
path: root/0001-Workaround-mbsrtowcs-fortify-crash-in-GLIBC-2.35.patch
diff options
context:
space:
mode:
authorHans-Nikolai Viessmann2022-05-01 10:53:18 +0200
committerHans-Nikolai Viessmann2022-05-01 10:53:18 +0200
commit0882cc73a3e14e4586bc7f86d622140637c36fa5 (patch)
treec262984065d84ff821ee8b4f9a4953ad4bf2b95d /0001-Workaround-mbsrtowcs-fortify-crash-in-GLIBC-2.35.patch
parent69a567011436587205b24d7b900b7fc95feb3da5 (diff)
downloadaur-0882cc73a3e14e4586bc7f86d622140637c36fa5.tar.gz
add workaround from bugs.archlinux.org/task/74041
Diffstat (limited to '0001-Workaround-mbsrtowcs-fortify-crash-in-GLIBC-2.35.patch')
-rw-r--r--0001-Workaround-mbsrtowcs-fortify-crash-in-GLIBC-2.35.patch43
1 files changed, 43 insertions, 0 deletions
diff --git a/0001-Workaround-mbsrtowcs-fortify-crash-in-GLIBC-2.35.patch b/0001-Workaround-mbsrtowcs-fortify-crash-in-GLIBC-2.35.patch
new file mode 100644
index 000000000000..c3515c4475fe
--- /dev/null
+++ b/0001-Workaround-mbsrtowcs-fortify-crash-in-GLIBC-2.35.patch
@@ -0,0 +1,43 @@
+From 78556fc13026220f800384accf04e139f11e099a Mon Sep 17 00:00:00 2001
+From: Joan Bruguera <joanbrugueram@gmail.com>
+Date: Thu, 17 Feb 2022 22:27:34 +0100
+Subject: [PATCH] Workaround mbsrtowcs fortify crash in GLIBC 2.35
+
+Reproduces with:
+ gcc -O2 -Wp,-D_FORTIFY_SOURCE=2 test.c -o test && ./test
+
+And test.c:
+ #include <stdio.h>
+ #include <stdlib.h>
+ #include <wchar.h>
+
+ int main (void)
+ {
+ const char *hw = "HelloWorld";
+ mbstate_t ps = {0};
+ mbsrtowcs (NULL, &hw, (size_t)-1, &ps);
+ return 0;
+ }
+
+Output:
+ *** buffer overflow detected ***: terminated
+---
+ utf8.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/utf8.c b/utf8.c
+index 2db18f2..806d528 100644
+--- a/utf8.c
++++ b/utf8.c
+@@ -167,7 +167,7 @@ static size_t xmbstowcs (wchar_t *dest, const char *src, size_t len,
+ while (src && (len || !dest)) {
+ size_t res;
+
+- res = mbsrtowcs (dest, &src, len, &ps);
++ res = mbsrtowcs (dest, &src, dest ? len : 0, &ps);
+ if (res != (size_t)-1) {
+ count += res;
+ src = NULL;
+--
+2.35.1
+