[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: system/2178



daemon does not chdir to / in case because daemon is called with nochdir.
The first argument says not to change the current directory. look at daemon(3).


Thanks,
Andrew Pinski

> 
> On Wed, Nov 14, 2001 at 02:35:34PM -0700, Todd C. Miller wrote:
> > Synopsis: rwhod sends errors to stderr after calling daemon
> > 
> > State-Changed-From-To: open-closed
> > State-Changed-By: millert
> > State-Changed-When: Wed Nov 14 14:35:04 MST 2001
> > State-Changed-Why: 
> > daemon() call moved to be after chdir()
> 
> This is wrong.  daemon chdirs to /, so this will make the chdir 
> useless.
> 
> Try this instead (patch relative to 3.0 release source):
> --- rwhod.c.orig	Wed Nov 14 17:37:39 2001
> +++ rwhod.c	Wed Nov 14 17:38:58 2001
> @@ -160,13 +160,13 @@
>  	if (!debug)
>  		daemon(1, 0);
>  
> +	(void) signal(SIGHUP, hup);
> +	openlog("rwhod", LOG_PID, LOG_DAEMON);
> +
>  	if (chdir(_PATH_RWHODIR) < 0) {
> -		(void)fprintf(stderr, "rwhod: %s: %s\n",
> -		    _PATH_RWHODIR, strerror(errno));
> +		syslog(LOG_ERR, "chdir: %m");
>  		exit(1);
>  	}
> -	(void) signal(SIGHUP, hup);
> -	openlog("rwhod", LOG_PID, LOG_DAEMON);
>  	/*
>  	 * Establish host name as returned by system.
>  	 */
> 
> -- 
> David Terrell            | "When we said that you needed to cut the
> dbt@meat.net             | wires for ultimate security, we didn't
> Nebcorp Prime Minister   | mean that you should go wireless instead."
> http://wwn.nebcorp.com/  |   - Casper Dik
>