summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--usr.bin/mixerctl/mixerctl.c16
1 files changed, 13 insertions, 3 deletions
diff --git a/usr.bin/mixerctl/mixerctl.c b/usr.bin/mixerctl/mixerctl.c
index fc5ac5733b6..913462d3290 100644
--- a/usr.bin/mixerctl/mixerctl.c
+++ b/usr.bin/mixerctl/mixerctl.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: mixerctl.c,v 1.30 2015/02/08 23:40:34 deraadt Exp $ */
+/* $OpenBSD: mixerctl.c,v 1.31 2018/08/08 19:35:47 mestre Exp $ */
/* $NetBSD: mixerctl.c,v 1.11 1998/04/27 16:55:23 augustss Exp $ */
/*
@@ -283,10 +283,20 @@ main(int argc, char **argv)
if (argc == 0 && tflag == 0)
aflag = 1;
-
- if ((fd = open(file, O_RDWR)) == -1)
+
+ if (unveil(file, "rw") == -1)
+ err(1, "unveil");
+
+ if ((fd = open(file, O_RDWR)) == -1) {
+ if (unveil(file, "r") == -1)
+ err(1, "unveil");
+
if ((fd = open(file, O_RDONLY)) == -1)
err(1, "%s", file);
+ }
+
+ if (unveil(NULL, NULL) == -1)
+ err(1, "unveil");
for (ndev = 0; ; ndev++) {
dinfo.index = ndev;