A trivial diff for the sndiod "device helper" process.  All this
process does is to open the device and pass it to the main process. So
it can be restricted to /dev.

The other sndiod process has neither of rpath, wpath, cpath, or exec,
so it doesn't need unveil, right?

Index: sndiod.c
===================================================================
RCS file: /cvs/src/usr.bin/sndiod/sndiod.c,v
retrieving revision 1.33
diff -u -p -r1.33 sndiod.c
--- sndiod.c    26 Jun 2018 07:12:35 -0000      1.33
+++ sndiod.c    30 Jul 2018 09:18:32 -0000
@@ -378,6 +378,8 @@ start_helper(int background)
                            setresuid(pw->pw_uid, pw->pw_uid, pw->pw_uid))
                                err(1, "cannot drop privileges");
                }
+               if (unveil("/dev", "rw") < 0)
+                       err(1, "unveil");
                if (pledge("stdio sendfd rpath wpath", NULL) < 0)
                        err(1, "pledge");
                while (file_poll())


Reply via email to