[PATCH 3.18 v2] kernel: avoid possible overflow in range's cmp_range()

From: Louis Langholtz
Date: Tue Nov 25 2014 - 19:09:26 EST


Avoid overflow possibility.

Signed-off-by: Louis Langholtz <lou_langholtz@xxxxxx>
---
diff --git a/kernel/range.c b/kernel/range.c
index 322ea8e..06d9ee7 100644
--- a/kernel/range.c
+++ b/kernel/range.c
@@ -113,12 +113,16 @@ static int cmp_range(const void *x1, const void *x2)
{
const struct range *r1 = x1;
const struct range *r2 = x2;
- s64 start1, start2;
+ u64 start1, start2;

start1 = r1->start;
start2 = r2->start;

- return start1 - start2;
+ if (start1 < start2)
+ return -1;
+ if (start1 > start2)
+ return 1;
+ return 0;
}

int clean_sort_range(struct range *range, int az)

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/