diff options
author | Ulrich Drepper <drepper@redhat.com> | 2009-11-22 19:07:52 -0800 |
---|---|---|
committer | Ulrich Drepper <drepper@redhat.com> | 2009-11-22 19:07:52 -0800 |
commit | 351fe9477007a45df62eaafe7ae8adc5cd1d0e0e (patch) | |
tree | ea035529ff845affaf1ab53f6b43429fb45581d6 | |
parent | 57a299fe4757e50e70fe8c96a357293e7fa0db53 (diff) | |
download | glibc-351fe9477007a45df62eaafe7ae8adc5cd1d0e0e.tar.gz glibc-351fe9477007a45df62eaafe7ae8adc5cd1d0e0e.tar.xz glibc-351fe9477007a45df62eaafe7ae8adc5cd1d0e0e.zip |
Try harder to re-exec nscd in paranoia mode.
-rw-r--r-- | ChangeLog | 2 | ||||
-rw-r--r-- | nscd/connections.c | 7 |
2 files changed, 5 insertions, 4 deletions
diff --git a/ChangeLog b/ChangeLog index 9a733519ae..337af672f6 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,7 @@ 2009-11-22 Ulrich Drepper <drepper@redhat.com> + * nscd/connections.c (restart): Try harder to re-exec. + * sunrpc/create_xid.c (_create_xid): Reinitialize state after fork. * sysdeps/unix/sysv/linux/ntp_gettimex.c: New file. diff --git a/nscd/connections.c b/nscd/connections.c index ca73393f40..69f6533a32 100644 --- a/nscd/connections.c +++ b/nscd/connections.c @@ -1426,15 +1426,14 @@ cannot change to old working directory: %s; disabling paranoia mode"), #endif /* Try to exec the real nscd program so the process name (as reported in /proc/PID/status) will be 'nscd', but fall back to /proc/self/exe - if readlink fails */ + if readlink or the exec with the result of the readlink call fails. */ ssize_t n = readlink ("/proc/self/exe", pathbuf, sizeof (pathbuf) - 1); - if (n == -1) - execv ("/proc/self/exe", argv); - else + if (n != -1) { pathbuf[n] = '\0'; execv (pathbuf, argv); } + execv ("/proc/self/exe", argv); /* If we come here, we will never be able to re-exec. */ dbg_log (_("re-exec failed: %s; disabling paranoia mode"), |