[PATCH 2/2] audit: remove needless switch in AUDIT_SET

Eric Paris eparis at redhat.com
Mon Jan 13 21:51:02 UTC 2014


If userspace specified that it was setting values via the mask we do not
need a second check to see if they also set the version field high
enough to understand those values.  (clearly if they set the mask they
knew those values).

Signed-off-by: Eric Paris <eparis at redhat.com>
---
 kernel/audit.c | 25 +++++++++----------------
 1 file changed, 9 insertions(+), 16 deletions(-)

diff --git a/kernel/audit.c b/kernel/audit.c
index fe2e305..f45966e 100644
--- a/kernel/audit.c
+++ b/kernel/audit.c
@@ -842,22 +842,15 @@ static int audit_receive_msg(struct sk_buff *skb, struct nlmsghdr *nlh)
 			if (err < 0)
 				return err;
 		}
-		switch (s.version) {
-		/* add future vers # cases immediately below and allow
-		 * to fall through */
-		case 2:
-			if (s.mask & AUDIT_STATUS_BACKLOG_WAIT_TIME) {
-				if (sizeof(s) > (size_t)nlh->nlmsg_len)
-					return -EINVAL;
-				if (s.backlog_wait_time < 0 ||
-				    s.backlog_wait_time > 10*AUDIT_BACKLOG_WAIT_TIME)
-					return -EINVAL;
-				err = audit_set_backlog_wait_time(s.backlog_wait_time);
-				if (err < 0)
-					return err;
-			}
-		default:
-			break;
+		if (s.mask & AUDIT_STATUS_BACKLOG_WAIT_TIME) {
+			if (sizeof(s) > (size_t)nlh->nlmsg_len)
+				return -EINVAL;
+			if (s.backlog_wait_time < 0 ||
+			    s.backlog_wait_time > 10*AUDIT_BACKLOG_WAIT_TIME)
+				return -EINVAL;
+			err = audit_set_backlog_wait_time(s.backlog_wait_time);
+			if (err < 0)
+				return err;
 		}
 		break;
 	}
-- 
1.8.4.2




More information about the Linux-audit mailing list