fix undefined behavior in getdelim via null pointer arithmetic and memcpy
[musl] / src / thread / vmlock.c
index 0a69b3e..fa0a8e3 100644 (file)
@@ -1,6 +1,8 @@
 #include "pthread_impl.h"
+#include "fork_impl.h"
 
 static volatile int vmlock[2];
+volatile int *const __vmlock_lockptr = vmlock;
 
 void __vm_wait()
 {
@@ -9,12 +11,12 @@ void __vm_wait()
                __wait(vmlock, vmlock+1, tmp, 1);
 }
 
-void __vm_lock(pthread_t self)
+void __vm_lock()
 {
        a_inc(vmlock);
 }
 
-void __vm_unlock(pthread_t self)
+void __vm_unlock()
 {
        if (a_fetch_add(vmlock, -1)==1 && vmlock[1])
                __wake(vmlock, -1, 1);