summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorelad <elad@NetBSD.org>2006-12-14 11:15:27 +0000
committerelad <elad@NetBSD.org>2006-12-14 11:15:27 +0000
commitaa4d8a2d6caf3e39503b44d040cfbc0a41480191 (patch)
tree543e3d78993af7e40efec3cd243ba9e12515b0a3
parent4cfe5a1b4128cd1a9f16c727a9edf38272768a14 (diff)
PR/35252: YAMAMOTO Takashi: veriexec doesn't handle unmount
Call veriexec_table_delete() in the cases where we won't be failing the unmount request.
-rw-r--r--sys/kern/kern_verifiedexec.c11
1 files changed, 8 insertions, 3 deletions
diff --git a/sys/kern/kern_verifiedexec.c b/sys/kern/kern_verifiedexec.c
index bee03b05033..8e4f30e1f92 100644
--- a/sys/kern/kern_verifiedexec.c
+++ b/sys/kern/kern_verifiedexec.c
@@ -1,4 +1,4 @@
-/* $NetBSD: kern_verifiedexec.c,v 1.80 2006/12/14 05:15:33 elad Exp $ */
+/* $NetBSD: kern_verifiedexec.c,v 1.81 2006/12/14 11:15:27 elad Exp $ */
/*-
* Copyright 2005 Elad Efrat <elad@NetBSD.org>
@@ -30,7 +30,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: kern_verifiedexec.c,v 1.80 2006/12/14 05:15:33 elad Exp $");
+__KERNEL_RCSID(0, "$NetBSD: kern_verifiedexec.c,v 1.81 2006/12/14 11:15:27 elad Exp $");
#include "opt_veriexec.h"
@@ -1173,6 +1173,11 @@ veriexec_unmountchk(struct mount *mp)
switch (veriexec_strict) {
case VERIEXEC_LEARNING:
case VERIEXEC_IDS:
+ if (veriexec_table_delete(mp) == 0) {
+ log(LOG_INFO, "Veriexec: IDS mode, allowing unmount "
+ "of \"%s\".\n", mp->mnt_stat.f_mntonname);
+ }
+
error = 0;
break;
@@ -1182,7 +1187,7 @@ veriexec_unmountchk(struct mount *mp)
vte = fileassoc_tabledata_lookup(mp, veriexec_hook);
if ((vte != NULL) && (vte->vte_count > 0)) {
log(LOG_ALERT, "Veriexec: IPS mode, preventing"
- " unmount of \"%s\" with monitored files.",
+ " unmount of \"%s\" with monitored files.\n",
mp->mnt_stat.f_mntonname);
error = EPERM;