Index: sbin/fsck_msdosfs/check.c =================================================================== --- sbin/fsck_msdosfs/check.c +++ sbin/fsck_msdosfs/check.c @@ -33,6 +33,8 @@ "$FreeBSD$"; #endif /* not lint */ +#include + #ifdef HAVE_LIBUTIL_H #include #endif @@ -62,6 +64,18 @@ printf("** %s", fname); dosfs = open(fname, rdonly ? O_RDONLY : O_RDWR, 0); + + /* + * Here we enter capability mode. Further down access to global + * namespaces (e.g filesystem) is restricted (see capsicum(4)). + * We must connect(2) our socket before this point. + */ + + if (caph_enter() < 0) { + fprintf(stderr, "caph_enter_casper: %s\n", strerror(errno)); + exit(1); + } + if (dosfs < 0 && !rdonly) { dosfs = open(fname, O_RDONLY, 0); if (dosfs >= 0)