From d13a3e5d1b60cef3ea949f904e86e256829d0a2c Mon Sep 17 00:00:00 2001 From: Rajesh Kemisetti <rajeshk@codeaurora.org> Date: Tue, 12 Apr 2016 23:17:10 -0700 Subject: [PATCH] msm: kgsl: Add missing checks for alloc size and sglen In _kgsl_sharedmem_page_alloc(): - Make len of type size_t to be in line with size. - Check for boundary limits of requested alloc size before honoring. - Make sure sglen is greater than zero before marking it as end of sg list. BUG=27475454 Change-Id: I8e18aad2118f58ce677050ff4c4a4b0823c4b4b3 --- drivers/gpu/msm/kgsl_sharedmem.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/drivers/gpu/msm/kgsl_sharedmem.c b/drivers/gpu/msm/kgsl_sharedmem.c index 73c263bcf56a..4aec22b45033 100644 --- a/drivers/gpu/msm/kgsl_sharedmem.c +++ b/drivers/gpu/msm/kgsl_sharedmem.c @@ -580,10 +580,15 @@ _kgsl_sharedmem_page_alloc(struct kgsl_memdesc *memdesc, size_t size) { int order, ret = 0; - int len, sglen_alloc, sglen = 0; + int sglen_alloc, sglen = 0; + size_t len; void *ptr; unsigned int align; + size = PAGE_ALIGN(size); + if (size == 0 || size > UINT_MAX) + return -EINVAL; + align = (memdesc->flags & KGSL_MEMALIGN_MASK) >> KGSL_MEMALIGN_SHIFT; /* -- GitLab