>Number:         159568
>Category:       bin
>Synopsis:       [patch] allow daemon(8) to write pid file in /var/run without 
>root
>Confidential:   no
>Severity:       non-critical
>Priority:       medium
>Responsible:    freebsd-bugs
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          sw-bug
>Submitter-Id:   current-users
>Arrival-Date:   Sun Aug 07 01:40:12 UTC 2011
>Closed-Date:
>Last-Modified:
>Originator:     Aragon Gouveia
>Release:        8.2-RELEASE-p2
>Organization:
>Environment:
FreeBSD fuzz.geek.sh 8.2-RELEASE-p2 FreeBSD 8.2-RELEASE-p2 #0: Sun Jul 10 
15:27:35 SAST 2011     t...@igor.geek.sh:/usr/obj/usr/src-RELENG_8_2/sys/FUZZ  
amd64

>Description:
daemon(8) provides the ability to write a pid file of the daemon it forks.  It 
also provides the ability to drop root privileges of the daemon it forks, 
however, this feature prevents it from writing a pid file to /var/run.

Attached patch makes daemon(8) open the pid file descriptor before dropping 
root privileges.

>How-To-Repeat:

>Fix:


Patch attached with submission follows:

--- daemon.c.orig       2011-08-07 03:26:47.000000000 +0200
+++ daemon.c    2011-08-07 03:27:04.000000000 +0200
@@ -79,9 +79,6 @@
        if (argc == 0)
                usage();
 
-       if (user != NULL)
-               restrict_process(user);
-
        /*
         * Try to open the pidfile before calling daemon(3),
         * to be able to report the error intelligently
@@ -97,6 +94,9 @@
                }
        }
 
+       if (user != NULL)
+               restrict_process(user);
+
        if (daemon(nochdir, noclose) == -1)
                err(1, NULL);
 


>Release-Note:
>Audit-Trail:
>Unformatted:
_______________________________________________
freebsd-bugs@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-bugs
To unsubscribe, send any mail to "freebsd-bugs-unsubscr...@freebsd.org"

Reply via email to