]> code.delx.au - pulseaudio/commitdiff
use real path of binary instead of /proc/self/exe to execute ourselves
authorLennart Poettering <lennart@poettering.net>
Mon, 29 Oct 2007 15:33:07 +0000 (15:33 +0000)
committerLennart Poettering <lennart@poettering.net>
Mon, 29 Oct 2007 15:33:07 +0000 (15:33 +0000)
git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@1976 fefdeb5f-60dc-0310-8127-8f9354f1896f

src/daemon/main.c

index 6c9f662775aeea7f9c6e0cbb4c115ef276a88305..cd3cfcc89fa409f4d62f17e96dc2b7b250504b1c 100644 (file)
@@ -336,11 +336,14 @@ int main(int argc, char *argv[]) {
     */
 
     if (!getenv("LD_BIND_NOW")) {
-        putenv(pa_xstrdup("LD_BIND_NOW=1"));
+        char *rp;
 
         /* We have to execute ourselves, because the libc caches the
          * value of $LD_BIND_NOW on initialization. */
-        pa_assert_se(execv("/proc/self/exe", argv) == 0);
+
+        putenv(pa_xstrdup("LD_BIND_NOW=1"));
+        pa_assert_se(rp = pa_readlink("/proc/self/exe"));
+        pa_assert_se(execv(rp, argv) == 0);
     }
 #endif