]> git.hungrycats.org Git - linux/commitdiff
audit: Fix check of return value of strnlen_user()
authorJan Kara <jack@suse.cz>
Tue, 2 Jun 2015 15:08:29 +0000 (17:08 +0200)
committerSasha Levin <alexander.levin@verizon.com>
Sat, 20 Aug 2016 03:07:58 +0000 (23:07 -0400)
[ Upstream commit 0b08c5e59441d08ab4b5e72afefd5cd98a4d83df ]

strnlen_user() returns 0 when it hits fault, not -1. Fix the test in
audit_log_single_execve_arg(). Luckily this shouldn't ever happen unless
there's a kernel bug so it's mostly a cosmetic fix.

CC: Paul Moore <pmoore@redhat.com>
Signed-off-by: Jan Kara <jack@suse.cz>
Signed-off-by: Paul Moore <pmoore@redhat.com>
Signed-off-by: Sasha Levin <alexander.levin@verizon.com>
kernel/auditsc.c

index 9fb9d1cb83ce2b19997be912aefdfd2c2a4fae3d..bb947ceeee4d26b6cbf3c4633bc8957aa8be5fc0 100644 (file)
@@ -1023,7 +1023,7 @@ static int audit_log_single_execve_arg(struct audit_context *context,
         * for strings that are too long, we should not have created
         * any.
         */
-       if (unlikely((len == -1) || len > MAX_ARG_STRLEN - 1)) {
+       if (unlikely((len == 0) || len > MAX_ARG_STRLEN - 1)) {
                WARN_ON(1);
                send_sig(SIGKILL, current, 0);
                return -1;