On Thu, Mar 11, 2021 at 11:12:41AM -0700, Klemens Nanni wrote:
> CVSROOT:      /cvs
> Module name:  src
> Changes by:   k...@cvs.openbsd.org    2021/03/11 11:12:41
> 
> Modified files:
>       usr.sbin/apmd  : apmd.c 
> 
> Log message:
> Use unveil(2)
> 
> Pledge is not possible due to the ioctls, but as apmd hoists both the
> control socket and apm device early at startup and only ever possibly
> executes scripts under /etc/apm/, hiding the rest of the filesystem
> becomes easy.
> 
> Technically, only "x" is required to traverse the directory and run
> scripts, but apmd carefully access(2) each script, which requires
> the read bit regardless of the permission bits being tested.
> 
> OK mestre
> 

System accounting started to report unveil violations after this commit:

        Purging accounting records:
        apmd       -FU     root                             __         0.06 
secs Mon Mar 15 00:15 (8:59:20.00)

This is what ktrace shows:

        71448 apmd     CALL  access(0x66348711fa,0x5<X_OK|R_OK>)
        71448 apmd     NAMI  "/etc/apm/resume"
        71448 apmd     RET   access -1 errno 2 No such file or directory
        71448 apmd     CALL  write(2,0x7f7ffffcf630,0x31)
        71448 apmd     GIO   fd 2 wrote 49 bytes
                "do_etc_file(): cannot access file /etc/apm/resume"

Only /etc/apm/suspend is present on this machine.

Reply via email to