[arch-commits] Commit in glibc/trunk (PKGBUILD disable-clone3.diff)

Frederik Schwan freswa at gemini.archlinux.org
Thu Feb 10 23:18:55 UTC 2022


    Date: Thursday, February 10, 2022 @ 23:18:55
  Author: freswa
Revision: 436918

add patch to disable clone3

the clone3 syscall breaks unpatched electron applications

fixes FS#73713

Added:
  glibc/trunk/disable-clone3.diff
Modified:
  glibc/trunk/PKGBUILD

---------------------+
 PKGBUILD            |   13 +++++++++++--
 disable-clone3.diff |   22 ++++++++++++++++++++++
 2 files changed, 33 insertions(+), 2 deletions(-)

Modified: PKGBUILD
===================================================================
--- PKGBUILD	2022-02-10 23:15:24 UTC (rev 436917)
+++ PKGBUILD	2022-02-10 23:18:55 UTC (rev 436918)
@@ -22,7 +22,8 @@
         locale.gen.txt
         locale-gen
         lib32-glibc.conf
-        sdt.h sdt-config.h)
+        sdt.h sdt-config.h
+        disable-clone3.diff)
 validpgpkeys=(7273542B39962DF7B299931416792B4EA25340F8 # Carlos O'Donell
               BC7C7372637EC10C57D7AA6579C43DFBF1CF2187) # Siddhesh Poyarekar
 b2sums=('623c728884f070cd87ffeb9203f74206197c52405ac9bc44f3dd519a3468b8e8ae2536c883e5d17d94417dbd1e91775de2e674314e4ff7424f9720026d6b7063'
@@ -31,7 +32,8 @@
         '1f6d927b4972220b1c00abee5329c5d6bc01ed5bee57b20db0c7d7433292f7d666b02baf9968267f8e378b1f3bb273e8eef0ccbf22d21400ac36949d7615a474'
         '7c265e6d36a5c0dff127093580827d15519b6c7205c2e1300e82f0fb5b9dd00b6accb40c56581f18179c4fbbc95bd2bf1b900ace867a83accde0969f7b609f8a'
         'a6a5e2f2a627cc0d13d11a82458cfd0aa75ec1c5a3c7647e5d5a3bb1d4c0770887a3909bfda1236803d5bc9801bfd6251e13483e9adf797e4725332cd0d91a0e'
-        '214e995e84b342fe7b2a7704ce011b7c7fc74c2971f98eeb3b4e677b99c860addc0a7d91b8dc0f0b8be7537782ee331999e02ba48f4ccc1c331b60f27d715678')
+        '214e995e84b342fe7b2a7704ce011b7c7fc74c2971f98eeb3b4e677b99c860addc0a7d91b8dc0f0b8be7537782ee331999e02ba48f4ccc1c331b60f27d715678'
+        'edef5f724f68ea95c6b0127bd13a10245f548afc381b2d0a6d1d06ee9f87b7dd89c6becd35d5ae722bf838594eb870a747f67f07f46e7d63f8c8d1a43cce4a52')
 
 prepare() {
   mkdir -p glibc-build lib32-glibc-build
@@ -38,6 +40,13 @@
 
   [[ -d glibc-$pkgver ]] && ln -s glibc-$pkgver glibc 
   cd glibc
+
+  # Disable clone3 syscall for now
+  # Can be removed when eletron{9,11,12} and discord are removed or patched:
+  # https://github.com/electron/electron/commit/993ecb5bdd5c57024c8718ca6203a8f924d6d574
+  # Patch src: https://patchwork.ozlabs.org/project/glibc/patch/87eebkf8ph.fsf@oldenburg.str.redhat.com/
+  patch -Np1 -i "${srcdir}"/disable-clone3.diff
+
 }
 
 build() {

Added: disable-clone3.diff
===================================================================
--- disable-clone3.diff	                        (rev 0)
+++ disable-clone3.diff	2022-02-10 23:18:55 UTC (rev 436918)
@@ -0,0 +1,22 @@
+diff --git a/sysdeps/unix/sysv/linux/clone-internal.c b/sysdeps/unix/sysv/linux/clone-internal.c
+index 1e7a8f6b35..4046c81180 100644
+--- a/sysdeps/unix/sysv/linux/clone-internal.c
++++ b/sysdeps/unix/sysv/linux/clone-internal.c
+@@ -48,17 +48,6 @@ __clone_internal (struct clone_args *cl_args,
+ 		  int (*func) (void *arg), void *arg)
+ {
+   int ret;
+-#ifdef HAVE_CLONE3_WRAPPER
+-  /* Try clone3 first.  */
+-  int saved_errno = errno;
+-  ret = __clone3 (cl_args, sizeof (*cl_args), func, arg);
+-  if (ret != -1 || errno != ENOSYS)
+-    return ret;
+-
+-  /* NB: Restore errno since errno may be checked against non-zero
+-     return value.  */
+-  __set_errno (saved_errno);
+-#endif
+ 
+   /* Map clone3 arguments to clone arguments.  NB: No need to check
+      invalid clone3 specific bits in flags nor exit_signal since this



More information about the arch-commits mailing list