ASoC: msm: qdsp6v2: extend validation of virtual address

Validate a buffer virtual address is fully within the region before
returning the region to ensure functionality for an extended edge
case.

Change-Id: Iba3e080889980f393d6a9f0afe0231408b92d654
Signed-off-by: Siena Richard <sienar@codeaurora.org>
CRs-fixed: 1108461
(cherry picked from commit 208e72e59c8411e75d4118b48648a5b7d42b1682)
This commit is contained in:
Siena Richard 2017-01-11 11:09:24 -08:00 committed by ShevT
parent a8726b2537
commit 929cc48d38
1 changed files with 4 additions and 1 deletions

View File

@ -140,7 +140,10 @@ static int audio_aio_ion_lookup_vaddr(struct q6audio_aio *audio, void *addr,
list_for_each_entry(region_elt, &audio->ion_region_queue, list) { list_for_each_entry(region_elt, &audio->ion_region_queue, list) {
if (addr >= region_elt->vaddr && if (addr >= region_elt->vaddr &&
addr < region_elt->vaddr + region_elt->len && addr < region_elt->vaddr + region_elt->len &&
addr + len <= region_elt->vaddr + region_elt->len) { addr + len <= region_elt->vaddr + region_elt->len &&
addr+len > addr) {
/* to avoid integer addition overflow */
/* offset since we could pass vaddr inside a registerd /* offset since we could pass vaddr inside a registerd
* ion buffer * ion buffer
*/ */