[PATCH] powerpc: Prevent unsigned wrap in htab_dt_scan_page_sizes()

Subsystems: linux for powerpc (32-bit and 64-bit), the rest

STALE6177d

2 messages, 2 authors, 2009-10-14 · open the first message on its own page

[PATCH] powerpc: Prevent unsigned wrap in htab_dt_scan_page_sizes()

From: Roel Kluin <hidden>
Date: 2009-10-14 12:02:52

Check to prevent unsigned wrap of size before subtraction.

Signed-off-by: Roel Kluin <redacted>
---
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;

Re: [PATCH] powerpc: Prevent unsigned wrap in htab_dt_scan_page_sizes()

From: Paul Mackerras <hidden>
Date: 2009-10-14 21:29:16

Roel Kluin writes:
Check to prevent unsigned wrap of size before subtraction.

Signed-off-by: Roel Kluin <redacted>
---
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 <redacted>
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help