[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#1042018: qt6-declarative: FTBFS on hppa - Segmentation fault in /usr/lib/qt6/bin/qsb



On 2023-07-25 4:29 p.m., Patrick Franz wrote:
Due to the lack of resources, it's unlikely we'll even investigate this.
However, if you have a patch, I'm happy to apply it.
The attached change fixes the reported segmentation fault in qsb. The change is to
src/3rdparty/forkfd/forkfd_linux.c in the qt6-base package. The problem is the system_vforkfd
routine assumes the stack direction is down, but on hppa the stack grows up. This causes
the childFn argument to be clobbered on the stack and the segmentation fault.

With this change to qt6-base, qt6-declarative builds successfully on hppa.  I believe it will also fix the
qt6-multimedia build as it appears to fail for the same reason.

Somehow, we need to get this installed in the 3rdparty forkfd source so all packages that use it
are fixed.

Regards,
Dave Anglin

--
John David Anglin  dave.anglin@bell.net
--- ./src/3rdparty/forkfd/forkfd_linux.c.save	2023-07-27 12:04:02.940466337 +0000
+++ ./src/3rdparty/forkfd/forkfd_linux.c	2023-07-27 12:06:53.522077424 +0000
@@ -168,7 +168,12 @@
     }
     *system = 1;
 
+#if defined(__hppa__)
+    /* Stack grows up */
+    pid = clone(childFn, childStack, cloneflags, token, &pidfd, NULL, NULL);
+#else
     pid = clone(childFn, childStack + sizeof(childStack), cloneflags, token, &pidfd, NULL, NULL);
+#endif
     if (pid < 0)
         return pid;
     if (ppid)

Reply to: