amd64_edac:__amd64_set_scrub_rate(): avoid overindexing scrubrates[]
authorAndrew Morton <[email protected]>
Tue, 23 Oct 2012 21:09:39 +0000 (14:09 -0700)
committerBorislav Petkov <[email protected]>
Wed, 24 Oct 2012 14:13:27 +0000 (16:13 +0200)
commit168bfeef7bba3f9784f7540b053e4ac72b769ce9
treea02890616eb3d65377be628ff9cd1b577beb36df
parent6f0c0580b70c89094b3422ba81118c7b959c7556
amd64_edac:__amd64_set_scrub_rate(): avoid overindexing scrubrates[]

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 <[email protected]>
Cc: [email protected]
Cc: Doug Thompson <[email protected]>
Signed-off-by: Andrew Morton <[email protected]>
Signed-off-by: Borislav Petkov <[email protected]>
drivers/edac/amd64_edac.c