]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
staging: ion: Prevent incorrect reference counting behavour
authorLee Jones <lee.jones@linaro.org>
Fri, 26 Nov 2021 10:33:35 +0000 (10:33 +0000)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 8 Dec 2021 07:44:04 +0000 (08:44 +0100)
Supply additional checks in order to prevent unexpected results.

Fixes: b892bf75b2034 ("ion: Switch ion to use dma-buf")
Suggested-by: Dan Carpenter <dan.carpenter@oracle.com>
Signed-off-by: Lee Jones <lee.jones@linaro.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/staging/android/ion/ion.c

index 4adb1138af09b9c65c1f8e5470f1e6b059594f14..f2b875ccf388f12ab6c32a452b72a68e47ba7be7 100644 (file)
@@ -606,6 +606,9 @@ static 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;
        }
@@ -626,6 +629,9 @@ static void *ion_handle_kmap_get(struct ion_handle *handle)
        void *vaddr;
 
        if (handle->kmap_cnt) {
+               if (handle->kmap_cnt == INT_MAX)
+                       return ERR_PTR(-EOVERFLOW);
+
                handle->kmap_cnt++;
                return buffer->vaddr;
        }