From: tip-bot for Colin Ian King <tipbot@zytor.com>
To: linux-tip-commits@vger.kernel.org
Cc: Yazen.Ghannam@amd.com, bp@suse.de, torvalds@linux-foundation.org,
hpa@zytor.com, colin.king@canonical.com, peterz@infradead.org,
linux-kernel@vger.kernel.org, tglx@linutronix.de,
mingo@kernel.org
Subject: [tip:ras/core] x86/RAS/mce_amd_inj: Fix signed wrap around when decrementing index 'i'
Date: Mon, 26 Sep 2016 09:31:37 -0700 [thread overview]
Message-ID: <tip-8b44f00f8c952ab6eb658090383571b2ec7d253f@git.kernel.org> (raw)
In-Reply-To: <20160926083152.30848-2-bp@alien8.de>
Commit-ID: 8b44f00f8c952ab6eb658090383571b2ec7d253f
Gitweb: http://git.kernel.org/tip/8b44f00f8c952ab6eb658090383571b2ec7d253f
Author: Colin Ian King <colin.king@canonical.com>
AuthorDate: Mon, 26 Sep 2016 10:31:51 +0200
Committer: Ingo Molnar <mingo@kernel.org>
CommitDate: Mon, 26 Sep 2016 11:13:17 +0200
x86/RAS/mce_amd_inj: Fix signed wrap around when decrementing index 'i'
Change predecrement compare to post decrement compare to avoid an
unsigned integer wrap-around comparisomn when decrementing in the while
loop.
For example, if the debugfs_create_file() fails when 'i' is zero, the
current situation will predecrement 'i' in the while loop, wrapping 'i' to
the maximum signed integer and cause multiple out of bounds reads on
dfs_fls[i].d as the loop interates to zero.
Also, as Borislav Petkov suggested, return -ENODEV rather than -ENOMEM
on the error condition.
Signed-off-by: Colin Ian King <colin.king@canonical.com>
Signed-off-by: Borislav Petkov <bp@suse.de>
Cc: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: Yazen Ghannam <Yazen.Ghannam@amd.com>
Link: http://lkml.kernel.org/r/20160926083152.30848-2-bp@alien8.de
Signed-off-by: Ingo Molnar <mingo@kernel.org>
---
arch/x86/ras/mce_amd_inj.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/arch/x86/ras/mce_amd_inj.c b/arch/x86/ras/mce_amd_inj.c
index cd318d9..20b227f 100644
--- a/arch/x86/ras/mce_amd_inj.c
+++ b/arch/x86/ras/mce_amd_inj.c
@@ -464,13 +464,13 @@ static int __init init_mce_inject(void)
return 0;
err_dfs_add:
- while (--i >= 0)
+ while (i-- > 0)
debugfs_remove(dfs_fls[i].d);
debugfs_remove(dfs_inj);
dfs_inj = NULL;
- return -ENOMEM;
+ return -ENODEV;
}
static void __exit exit_mce_inject(void)
next prev parent reply other threads:[~2016-09-26 16:33 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-09-26 8:31 [PATCH 0/2] x86/ras: Two more for 4.9 Borislav Petkov
2016-09-26 8:31 ` [PATCH 1/2] x86/RAS/mce_amd_inj: Fix signed wrap around when decrementing index i Borislav Petkov
2016-09-26 16:31 ` tip-bot for Colin Ian King [this message]
2016-09-26 8:31 ` [PATCH 2/2] x86/RAS/mce_amd_inj: Remove debugfs dir recursively on exit Borislav Petkov
2016-09-26 16:32 ` [tip:ras/core] " tip-bot for Borislav Petkov
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=tip-8b44f00f8c952ab6eb658090383571b2ec7d253f@git.kernel.org \
--to=tipbot@zytor.com \
--cc=Yazen.Ghannam@amd.com \
--cc=bp@suse.de \
--cc=colin.king@canonical.com \
--cc=hpa@zytor.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-tip-commits@vger.kernel.org \
--cc=mingo@kernel.org \
--cc=peterz@infradead.org \
--cc=tglx@linutronix.de \
--cc=torvalds@linux-foundation.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox