[PATCH] arch:arm:mm:Aligning the module end and Correction in

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



From: Shailendra Verma <Shailendra.v@xxxxxxxxxxx>

The module end was not aligned as of module start and boundary
check for module end is not proper.This out of bound value of
module end can produce undesired results.

Reported-by: Hillf Danton <hillf.zj@xxxxxxxxxxxxxxx>
Signed-off-by: Shailendra Verma <Shailendra.v@xxxxxxxxxxx>
Reviewed-by: Ravikant Bijendra Sharma <ravikant.s2@xxxxxxxxxxx>
---
 linux-4.3-rc6/arch/arm/mm/pageattr.c |   11 +++++------
 1 file changed, 5 insertions(+), 6 deletions(-)

diff --git a/linux-4.3-rc6/arch/arm/mm/pageattr.c b/linux-4.3-rc6/arch/arm/mm/pageattr.c
index cf30daf..17f103c 100644
--- a/linux-4.3-rc6/arch/arm/mm/pageattr.c
+++ b/linux-4.3-rc6/arch/arm/mm/pageattr.c
@@ -43,16 +43,15 @@ static int change_memory_common(unsigned long addr, int numpages,
 	int ret;
 	struct page_change_data data;
 
-	if (!IS_ALIGNED(addr, PAGE_SIZE)) {
-		start &= PAGE_MASK;
-		end = start + size;
-		WARN_ON_ONCE(1);
-	}
+	if (WARN_ON_ONCE(!IS_ALIGNED(addr, PAGE_SIZE))) {
+		start &= PAGE_MASK;
+		end = PAGE_ALIGN(end);
+	}
 
 	if (start < MODULES_VADDR || start >= MODULES_END)
 		return -EINVAL;
 
-	if (end < MODULES_VADDR || start >= MODULES_END)
+	if (end < MODULES_VADDR || end >= MODULES_END)
 		return -EINVAL;
 
 	data.set_mask = set_mask;
-- 
1.7.9.5

_______________________________________________
devel mailing list
devel@xxxxxxxxxxxxxxxxxxxxxx
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel



[Index of Archives]     [Linux Driver Backports]     [DMA Engine]     [Linux GPIO]     [Linux SPI]     [Video for Linux]     [Linux USB Devel]     [Linux Coverity]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [Yosemite Backpacking]
  Powered by Linux