On Sat, Sep 17, 2016 at 11:17:50AM +0100, Colin King wrote: > From: Colin Ian King <colin.k...@canonical.com> > > 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.k...@canonical.com> > --- > 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)
Even better. Applied, thanks. -- Regards/Gruss, Boris. SUSE Linux GmbH, GF: Felix Imendörffer, Jane Smithard, Graham Norton, HRB 21284 (AG Nürnberg) --