From: Shailendra Verma <[email protected]> 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 <[email protected]> Signed-off-by: Shailendra Verma <[email protected]> Reviewed-by: Ravikant Bijendra Sharma <[email protected]> --- 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 -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [email protected] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/

