mirror of
https://gitlab.freedesktop.org/pulseaudio/pulseaudio.git
synced 2025-11-06 13:29:56 -05:00
daemon: don't crash if pa_realpath() fails
This commit is contained in:
parent
732b468d66
commit
320d76f158
1 changed files with 13 additions and 10 deletions
|
|
@ -423,21 +423,24 @@ int main(int argc, char *argv[]) {
|
||||||
|
|
||||||
pa_set_env("LD_BIND_NOW", "1");
|
pa_set_env("LD_BIND_NOW", "1");
|
||||||
|
|
||||||
canonical_rp = pa_realpath(PA_BINARY);
|
if (!(canonical_rp = pa_realpath(PA_BINARY))) {
|
||||||
|
|
||||||
if ((rp = pa_readlink("/proc/self/exe"))) {
|
if ((rp = pa_readlink("/proc/self/exe"))) {
|
||||||
|
|
||||||
if (pa_streq(rp, canonical_rp))
|
if (pa_streq(rp, canonical_rp))
|
||||||
pa_assert_se(execv(rp, argv) == 0);
|
pa_assert_se(execv(rp, argv) == 0);
|
||||||
else
|
else
|
||||||
pa_log_warn("/proc/self/exe does not point to %s, cannot self execute. Are you playing games?", canonical_rp);
|
pa_log_warn("/proc/self/exe does not point to %s, cannot self execute. Are you playing games?", canonical_rp);
|
||||||
|
|
||||||
pa_xfree(rp);
|
pa_xfree(rp);
|
||||||
|
|
||||||
|
} else
|
||||||
|
pa_log_warn("Couldn't read /proc/self/exe, cannot self execute. Running in a chroot()?");
|
||||||
|
|
||||||
|
pa_xfree(canonical_rp);
|
||||||
|
|
||||||
} else
|
} else
|
||||||
pa_log_warn("Couldn't read /proc/self/exe, cannot self execute. Running in a chroot()?");
|
pa_log_warn("Couldn't canonicalize binary path, cannot self execute.");
|
||||||
|
|
||||||
pa_xfree(canonical_rp);
|
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue