Message ID | 4AD5C01E.8000600@gmail.com (mailing list archive) |
---|---|
State | Changes Requested |
Headers | show |
Roel Kluin writes: > Check to prevent unsigned wrap of size before subtraction. > > Signed-off-by: Roel Kluin <roel.kluin@gmail.com> > --- > Is this maybe better or are we certain that size can't wrap? Patch looks good, though while you're at it, you could add a space after the "while". Acked-by: Paul Mackerras <paulus@samba.org>
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;
Check to prevent unsigned wrap of size before subtraction. Signed-off-by: Roel Kluin <roel.kluin@gmail.com> --- Is this maybe better or are we certain that size can't wrap?