]> git.karo-electronics.de Git - karo-tx-linux.git/commit
x86/RAS/mce_amd_inj: Fix signed wrap around when decrementing index 'i'
authorColin Ian King <colin.king@canonical.com>
Mon, 26 Sep 2016 08:31:51 +0000 (10:31 +0200)
committerIngo Molnar <mingo@kernel.org>
Mon, 26 Sep 2016 09:13:17 +0000 (11:13 +0200)
commit8b44f00f8c952ab6eb658090383571b2ec7d253f
tree572c6fa32b6e3b0b49735b874e2c905320d3a0ba
parent6fae257f0b294d7abe7adfb08277bfd5472ed717
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