summaryrefslogtreecommitdiff
path: root/main/cdparanoia/no-cuserid.patch
diff options
context:
space:
mode:
Diffstat (limited to 'main/cdparanoia/no-cuserid.patch')
-rw-r--r--main/cdparanoia/no-cuserid.patch32
1 files changed, 32 insertions, 0 deletions
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);
+ }
+