amd64_edac:__amd64_set_scrub_rate(): avoid overindexing scrubrates[]
authorAndrew Morton <akpm@linux-foundation.org>
Tue, 23 Oct 2012 21:09:39 +0000 (14:09 -0700)
committerBen Hutchings <ben@decadent.org.uk>
Tue, 30 Oct 2012 23:26:55 +0000 (23:26 +0000)
commit1d3bda6f1b995e50f3c8529333471351b986c503
tree60af9334b7567b207b2a8e1a159d8f69411058fc
parent5b0398effd52c5483c0f28d3473206386a264138
amd64_edac:__amd64_set_scrub_rate(): avoid overindexing scrubrates[]

commit 168bfeef7bba3f9784f7540b053e4ac72b769ce9 upstream.

If none of the elements in scrubrates[] matches, this loop will cause
__amd64_set_scrub_rate() to incorrectly use the n+1th element.

As the function is designed to use the final scrubrates[] element in the
case of no match, we can fix this bug by simply terminating the array
search at the n-1th element.

Boris: this code is fragile anyway, see here why:
http://marc.info/?l=linux-kernel&m=135102834131236&w=2

It will be rewritten more robustly soonish.

Reported-by: Denis Kirjanov <kirjanov@gmail.com>
Cc: Doug Thompson <dougthompson@xmission.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Borislav Petkov <borislav.petkov@amd.com>
Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
drivers/edac/amd64_edac.c