From 7f04e0c309811e762872a7ce71fba9cb359dd2c0 Mon Sep 17 00:00:00 2001 From: Lee Jones Date: Mon, 9 May 2022 15:17:10 +0100 Subject: [PATCH] BACKPORT: staging: ion: Prevent incorrect reference counting behavour Supply additional check in order to prevent unexpected results. Bug: 205573273 Fixes: b892bf75b2034 ("ion: Switch ion to use dma-buf") Suggested-by: Dan Carpenter Signed-off-by: Lee Jones Signed-off-by: Greg Kroah-Hartman [Lee: Patch now applies to ion_buffer.c instead of ion.c] Change-Id: Ia6afdd9ca502caa9cad6619d438fc6c8e8457679 (cherry picked from commit 27da8d16e4f0a0ef37da356599eb36adec542643) --- drivers/staging/android/ion/ion_buffer.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/drivers/staging/android/ion/ion_buffer.c b/drivers/staging/android/ion/ion_buffer.c index e22330f844c3..9dfb94e37554 100644 --- a/drivers/staging/android/ion/ion_buffer.c +++ b/drivers/staging/android/ion/ion_buffer.c @@ -249,6 +249,9 @@ void *ion_buffer_kmap_get(struct ion_buffer *buffer) void *vaddr; if (buffer->kmap_cnt) { + if (buffer->kmap_cnt == INT_MAX) + return ERR_PTR(-EOVERFLOW); + buffer->kmap_cnt++; return buffer->vaddr; }