From: Louis Langholtz Date: Fri, 16 Jan 2015 05:04:46 +0000 (-0700) Subject: kernel: avoid overflow in cmp_range X-Git-Tag: v3.19-rc5~6 X-Git-Url: https://openfabrics.org/gitweb/?a=commitdiff_plain;h=fc7f0dd381720ea5ee5818645f7d0e9dece41cb0;p=~emulex%2Finfiniband.git kernel: avoid overflow in cmp_range Avoid overflow possibility. [ The overflow is purely theoretical, since this is used for memory ranges that aren't even close to using the full 64 bits, but this is the right thing to do regardless. - Linus ] Signed-off-by: Louis Langholtz Cc: Yinghai Lu Cc: Peter Anvin Cc: Andrew Morton Signed-off-by: Linus Torvalds --- diff --git a/kernel/range.c b/kernel/range.c index 322ea8e93e4..82cfc285b04 100644 --- a/kernel/range.c +++ b/kernel/range.c @@ -113,12 +113,12 @@ static int cmp_range(const void *x1, const void *x2) { const struct range *r1 = x1; const struct range *r2 = x2; - s64 start1, start2; - start1 = r1->start; - start2 = r2->start; - - return start1 - start2; + if (r1->start < r2->start) + return -1; + if (r1->start > r2->start) + return 1; + return 0; } int clean_sort_range(struct range *range, int az)