Check to prevent unsigned wrap of size before subtraction.

Signed-off-by: Roel Kluin <roel.kl...@gmail.com>
---
Is this maybe better or are we certain that size can't wrap?

diff --git a/arch/powerpc/mm/hash_utils_64.c b/arch/powerpc/mm/hash_utils_64.c
index 1ade7eb..dd2d263 100644
--- a/arch/powerpc/mm/hash_utils_64.c
+++ b/arch/powerpc/mm/hash_utils_64.c
@@ -287,7 +287,7 @@ static int __init htab_dt_scan_page_sizes(unsigned long 
node,
                DBG("Page sizes from device-tree:\n");
                size /= 4;
                cur_cpu_spec->cpu_features &= ~(CPU_FTR_16M_PAGE);
-               while(size > 0) {
+               while(size >= 3) {
                        unsigned int shift = prop[0];
                        unsigned int slbenc = prop[1];
                        unsigned int lpnum = prop[2];
@@ -296,7 +296,7 @@ static int __init htab_dt_scan_page_sizes(unsigned long 
node,
                        int idx = -1;
 
                        size -= 3; prop += 3;
-                       while(size > 0 && lpnum) {
+                       while(size >= 2 && lpnum) {
                                if (prop[0] == shift)
                                        lpenc = prop[1];
                                prop += 2; size -= 2;
_______________________________________________
Linuxppc-dev mailing list
Linuxppc-dev@lists.ozlabs.org
https://lists.ozlabs.org/listinfo/linuxppc-dev

Reply via email to