summaryrefslogtreecommitdiff
path: root/main/cdparanoia
diff options
context:
space:
mode:
authorSören Tempel <soeren+git@soeren-tempel.net>2020-02-12 20:34:37 +0100
committerSören Tempel <soeren+git@soeren-tempel.net>2020-02-12 21:31:14 +0100
commitde10d698c771916add10ea54c5c63d1f37860e9d (patch)
treedb7fab5c35c02edc52979cae9a5f8597fd3987ba /main/cdparanoia
parente43c2c7582aaa5de534ce83f2da2a540f4a0f78c (diff)
downloadaports-de10d698c771916add10ea54c5c63d1f37860e9d.zip
main/cdparanoia: fix segmentation fault
This occurs when no CD drives are accessible to the user as musl does not support invoking cuserid with a NULL pointer argument.
Diffstat (limited to 'main/cdparanoia')
-rw-r--r--main/cdparanoia/APKBUILD7
-rw-r--r--main/cdparanoia/no-cuserid.patch32
2 files changed, 36 insertions, 3 deletions
diff --git a/main/cdparanoia/APKBUILD b/main/cdparanoia/APKBUILD
index 546e788d8a8..5beae0db011 100644
--- a/main/cdparanoia/APKBUILD
+++ b/main/cdparanoia/APKBUILD
@@ -2,7 +2,7 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=cdparanoia
pkgver=10.2
-pkgrel=7
+pkgrel=8
pkgdesc="An audio CD extraction application"
url="http://www.xiph.org/paranoia"
arch="all"
@@ -10,7 +10,7 @@ options="!check" # Build system has test suite commented out.
license="LGPL-2.0-or-later"
makedepends="libtool autoconf automake linux-headers"
subpackages="$pkgname-dev $pkgname-doc $pkgname-libs"
-patches="gcc.patch fix-includes.patch"
+patches="gcc.patch fix-includes.patch no-cuserid.patch"
source="http://downloads.xiph.org/releases/cdparanoia/$pkgname-III-$pkgver.src.tgz
$patches"
@@ -53,4 +53,5 @@ libs() {
sha512sums="4ab0a0f5ef44d56c1af72d1fc1035566a1a89c4eeddb9e8baea675fe51c06138d913342afc8bed167d9fa55672fa25a2763ce21f7e24c1232e4739aff20733a7 cdparanoia-III-10.2.src.tgz
27bf216e8b5b9d6971e3999166544025f166587df06065b89657dac62d0d53c01b76f53146c1e9a400dd71460567fadb8fd4ce00576836f972914d69e8855909 gcc.patch
-e8a5ef0f5bcdba697d2d49e31346832bfa2460e6f6cac9256420f57c74a5da2945bdc664368c91365a880ba76e638f58773468d8e8bd16e7afcaff955a1a82ce fix-includes.patch"
+e8a5ef0f5bcdba697d2d49e31346832bfa2460e6f6cac9256420f57c74a5da2945bdc664368c91365a880ba76e638f58773468d8e8bd16e7afcaff955a1a82ce fix-includes.patch
+52882bdc689e1a34bc0f3961aa649f400232a3fe769526a01fcbff4ba0d5183c1ad0737265b69668b857b0887b4e4e3f2c78bad913329cc7b621b14d47e873f9 no-cuserid.patch"
diff --git a/main/cdparanoia/no-cuserid.patch b/main/cdparanoia/no-cuserid.patch
new file mode 100644
index 00000000000..dd6417f8367
--- /dev/null
+++ b/main/cdparanoia/no-cuserid.patch
@@ -0,0 +1,32 @@
+Since IEEE 1003.1-1988 cuserid is not standardized anymore. The musl
+libc, used by Alpine Linux, currently does not supporting using it with
+a NULL pointer argument [1]. Doing so causes a segmentation fault, to
+fix this remove use of cuserid entirely. This is currently achieved by
+not including the user name in the error message, while it would be
+possible to achieve the same output using getpwuid(geteuid()) this
+requires error handling and would make the patch more complicated.
+
+[1]: https://www.openwall.com/lists/musl/2020/01/29/2
+
+diff -upr cdparanoia-III-10.2.orig/interface/scan_devices.c cdparanoia-III-10.2/interface/scan_devices.c
+--- cdparanoia-III-10.2.orig/interface/scan_devices.c 2020-02-12 20:29:46.232958848 +0100
++++ cdparanoia-III-10.2/interface/scan_devices.c 2020-02-12 20:30:06.336297868 +0100
+@@ -6,8 +6,6 @@
+ *
+ ******************************************************************/
+
+-#define _GNU_SOURCE /* get cuserid */
+-#define _USE_XOPEN /* get cuserid */
+ #include <limits.h>
+ #include <stdio.h>
+ #include <unistd.h>
+@@ -93,8 +91,7 @@ cdrom_drive *cdda_find_a_cdrom(int messa
+ i++;
+ }
+ idmessage(messagedest,messages,
+- "\n\nNo cdrom drives accessible to %s found.\n",
+- cuserid(NULL));
++ "\n\nNo cdrom drives accessible to current user found.\n", NULL);
+ return(NULL);
+ }
+