summarylogtreecommitdiffstats
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
parent69a567011436587205b24d7b900b7fc95feb3da5 (diff)
downloadaur-0882cc73a3e14e4586bc7f86d622140637c36fa5.tar.gz
add workaround from bugs.archlinux.org/task/74041
-rw-r--r--.SRCINFO4
-rw-r--r--0001-Workaround-mbsrtowcs-fortify-crash-in-GLIBC-2.35.patch43
-rw-r--r--PKGBUILD11
3 files changed, 54 insertions, 4 deletions
diff --git a/.SRCINFO b/.SRCINFO
index e0f5f0911f13..5ac953c0c186 100644
--- a/.SRCINFO
+++ b/.SRCINFO
@@ -1,7 +1,7 @@
pkgbase = moc-pulse
pkgdesc = An ncurses console audio player with support for pulseaudio
pkgver = 2.5.2
- pkgrel = 7
+ pkgrel = 8
url = https://moc.daper.net/
arch = x86_64
license = GPL
@@ -33,9 +33,11 @@ pkgbase = moc-pulse
source = pulseaudio.patch
source = moc-ffmpeg4.patch
source = moc-https.patch
+ source = 0001-Workaround-mbsrtowcs-fortify-crash-in-GLIBC-2.35.patch
sha1sums = 9d27a929b63099416263471c16367997c0ae6dba
sha1sums = 5c6385760ba40ee8a330d28d520c44eac2cbbae1
sha1sums = 007a0580ac754e1c318a0d0b6f0d403883797eaf
sha1sums = e3362ddd41126e2be874cd372a053fdaccf0f616
+ sha1sums = d3673707b2d96c34287042dc26698b2c5a00952a
pkgname = moc-pulse
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
+
diff --git a/PKGBUILD b/PKGBUILD
index e54528d9241d..a88a62ab5d79 100644
--- a/PKGBUILD
+++ b/PKGBUILD
@@ -5,7 +5,7 @@
pkgname='moc-pulse'
_pkgname='moc'
pkgver=2.5.2
-pkgrel=7
+pkgrel=8
pkgdesc='An ncurses console audio player with support for pulseaudio'
arch=('x86_64')
url="https://moc.daper.net/"
@@ -24,11 +24,13 @@ conflicts=('moc')
source=("https://sources.voidlinux-ppc.org/moc-2.5.2/${_pkgname}-${pkgver}.tar.bz2"
'pulseaudio.patch'
'moc-ffmpeg4.patch'
- 'moc-https.patch')
+ 'moc-https.patch'
+ '0001-Workaround-mbsrtowcs-fortify-crash-in-GLIBC-2.35.patch')
sha1sums=('9d27a929b63099416263471c16367997c0ae6dba'
'5c6385760ba40ee8a330d28d520c44eac2cbbae1'
'007a0580ac754e1c318a0d0b6f0d403883797eaf'
- 'e3362ddd41126e2be874cd372a053fdaccf0f616')
+ 'e3362ddd41126e2be874cd372a053fdaccf0f616'
+ 'd3673707b2d96c34287042dc26698b2c5a00952a')
# validpgpkeys=('59359B80406D9E73E80599BEF3121E4F2885A7AA')
prepare() {
@@ -41,6 +43,9 @@ prepare() {
# Add pulseaudio backend
patch -p1 -i ../pulseaudio.patch
+ # HOTFIX for GLIBC 2.35 buffer overflow error
+ patch -p1 -i ../0001-Workaround-mbsrtowcs-fortify-crash-in-GLIBC-2.35.patch
+
# reconfigure the build system
autoreconf -i -f
}