aboutsummaryrefslogtreecommitdiffstats
path: root/unmaintained/xf86-video-virtualbox/uclibc-spawn.patch
diff options
context:
space:
mode:
Diffstat (limited to 'unmaintained/xf86-video-virtualbox/uclibc-spawn.patch')
-rw-r--r--unmaintained/xf86-video-virtualbox/uclibc-spawn.patch26
1 files changed, 26 insertions, 0 deletions
diff --git a/unmaintained/xf86-video-virtualbox/uclibc-spawn.patch b/unmaintained/xf86-video-virtualbox/uclibc-spawn.patch
new file mode 100644
index 0000000000..98b4e8ad6e
--- /dev/null
+++ b/unmaintained/xf86-video-virtualbox/uclibc-spawn.patch
@@ -0,0 +1,26 @@
+--- ./src/VBox/Runtime/r3/posix/process-creation-posix.cpp.orig
++++ ./src/VBox/Runtime/r3/posix/process-creation-posix.cpp
+@@ -48,6 +48,9 @@
+ * whether it is started detached or not. */
+ # define HAVE_POSIX_SPAWN 1
+ #endif
++#if defined(__UCLIBC__)
++#undef HAVE_POSIX_SPAWN
++#endif
+ #ifdef HAVE_POSIX_SPAWN
+ # include <spawn.h>
+ #endif
+@@ -103,11 +106,9 @@
+ if (spwd)
+ pw->pw_passwd = spwd->sp_pwdp;
+
+- /* be reentrant */
+- struct crypt_data *data = (struct crypt_data*)RTMemTmpAllocZ(sizeof(*data));
+- char *pszEncPasswd = crypt_r(pszPasswd, pw->pw_passwd, data);
++ /* NOT reentrant */
++ char *pszEncPasswd = crypt(pszPasswd, pw->pw_passwd);
+ int fCorrect = !strcmp(pszEncPasswd, pw->pw_passwd);
+- RTMemTmpFree(data);
+ if (!fCorrect)
+ return VERR_PERMISSION_DENIED;
+