Commit fc7f0dd381720ea5ee5818645f7d0e9dece41cb0
Committed by
Linus Torvalds
1 parent
7ad4b4ae57
Exists in
ti-lsk-linux-4.1.y
and in
10 other branches
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 <lou_langholtz@me.com> Cc: Yinghai Lu <yinghai@kernel.org> Cc: Peter Anvin <hpa@linux.intel.com> Cc: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Showing 1 changed file with 5 additions and 5 deletions Side-by-side Diff
kernel/range.c
... | ... | @@ -113,12 +113,12 @@ |
113 | 113 | { |
114 | 114 | const struct range *r1 = x1; |
115 | 115 | const struct range *r2 = x2; |
116 | - s64 start1, start2; | |
117 | 116 | |
118 | - start1 = r1->start; | |
119 | - start2 = r2->start; | |
120 | - | |
121 | - return start1 - start2; | |
117 | + if (r1->start < r2->start) | |
118 | + return -1; | |
119 | + if (r1->start > r2->start) | |
120 | + return 1; | |
121 | + return 0; | |
122 | 122 | } |
123 | 123 | |
124 | 124 | int clean_sort_range(struct range *range, int az) |