Index | Thread | Search

From:
"Theo de Raadt" <deraadt@openbsd.org>
Subject:
Re: fix calendar -a
To:
tech <tech@openbsd.org>
Date:
Mon, 16 Mar 2026 09:23:57 -0600

Download raw body.

Thread
Oh, you found post-pledge /dev/null open.

                /*
                 * Set stderr to /dev/null.  Necessary so that cron does not
                 * wait for cpp to finish if it's running calendar -a.
                 */
                if (doall) {
                        int fderr;
                        fderr = open(_PATH_DEVNULL, O_WRONLY);
                        if (fderr == -1)
                                _exit(0);

Sure.

> ok?
> 
> ? ktrace.out
> Index: calendar.c
> ===================================================================
> RCS file: /cvs/src/usr.bin/calendar/calendar.c,v
> diff -u -p -r1.39 calendar.c
> --- calendar.c	18 Feb 2026 21:40:55 -0000	1.39
> +++ calendar.c	16 Mar 2026 15:17:08 -0000
> @@ -128,6 +128,8 @@ main(int argc, char *argv[])
>  	if (doall) {
>  		if (unveil("/tmp", "rwc") == -1)
>  			err(1, "unveil /tmp");
> +		if (unveil("/dev/null", "rw") == -1)
> +			err(1, "unveil /dev/null");
>  		if (unveil("/", "r") == -1)
>  			err(1, "unveil /");
>  		if (pledge("stdio rpath wpath cpath fattr getpw id proc exec",
>