+2004-02-20 Thorsten Kukuk <kukuk@suse.de>
+
+ * nscd/nscd.c (termination_handler): Use _exit instead of exit
+
2004-02-20 Ulrich Drepper <drepper@redhat.com>
+ * nscd/nscd.c (main): Report fork errors.
+
* dlfcn/dlsym.c: Get ld.so loading lock before the call into ld.so.
* dlfcn/dlvsym.c: Likewise.
* elf/dl-addr.c: Get loading lock while using _dl_loaded data.
/* Look up a symbol in a shared object loaded by `dlopen'.
- Copyright (C) 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+ Copyright (C) 1999, 2000, 2001, 2002, 2004 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
#if defined USE_TLS && defined SHARED
if (ELFW(ST_TYPE) (ref->st_info) == STT_TLS)
/* The found symbol is a thread-local storage variable.
- Return the address for to the current thread. */
+ Return the address for the current thread. */
return _dl_tls_symaddr (result, ref);
#endif
{
int i;
- if (fork ())
+ pid_t pid = fork ();
+ if (pid == -1)
+ error (EXIT_FAILURE, errno, _("cannot fork"));
+ if (pid != 0)
exit (0);
int nullfd = open (_PATH_DEVNULL, O_RDWR);
for (i = min_close_fd; i < getdtablesize (); i++)
close (i);
- if (fork ())
+ pid = fork ();
+ if (pid == -1)
+ error (EXIT_FAILURE, errno, _("cannot fork"));
+ if (pid != 0)
exit (0);
setsid ();
signal (SIGTERM, termination_handler);
signal (SIGPIPE, SIG_IGN);
- /* Cleanup files created by a previous `bind'. */
+ /* Cleanup files created by a previous 'bind'. */
unlink (_PATH_NSCDSOCKET);
/* Make sure we do not get recursive calls. */
{
close_sockets ();
- /* Clean up the file created by `bind'. */
+ /* Clean up the file created by 'bind'. */
unlink (_PATH_NSCDSOCKET);
/* Clean up pid file. */
unlink (_PATH_NSCDPID);
- exit (EXIT_SUCCESS);
+ _exit (EXIT_SUCCESS);
}
/* Returns 1 if the process in pid file FILE is running, 0 if not. */