gpu: ion: add pointer null checks in map and unmap
Clients may pass incorrect arguments to ION causing crashes.
Add checks to validate input for ION APIs.
Change-Id: Idafa4535b3ef71184ca11fb2c0c4ab073a52ac2f
Signed-off-by: Huaibin Yang <huaibiny@codeaurora.org>
Signed-off-by: Olav Haugan <ohaugan@codeaurora.org>
diff --git a/drivers/gpu/ion/ion.c b/drivers/gpu/ion/ion.c
index dc6c304..cd15d71 100644
--- a/drivers/gpu/ion/ion.c
+++ b/drivers/gpu/ion/ion.c
@@ -648,6 +648,19 @@
struct ion_iommu_map *iommu_map;
int ret = 0;
+ if (IS_ERR_OR_NULL(client)) {
+ pr_err("%s: client pointer is invalid\n", __func__);
+ return -EINVAL;
+ }
+ if (IS_ERR_OR_NULL(handle)) {
+ pr_err("%s: handle pointer is invalid\n", __func__);
+ return -EINVAL;
+ }
+ if (IS_ERR_OR_NULL(handle->buffer)) {
+ pr_err("%s: buffer pointer is invalid\n", __func__);
+ return -EINVAL;
+ }
+
if (ION_IS_CACHED(flags)) {
pr_err("%s: Cannot map iommu as cached.\n", __func__);
return -EINVAL;
@@ -755,6 +768,19 @@
struct ion_iommu_map *iommu_map;
struct ion_buffer *buffer;
+ if (IS_ERR_OR_NULL(client)) {
+ pr_err("%s: client pointer is invalid\n", __func__);
+ return;
+ }
+ if (IS_ERR_OR_NULL(handle)) {
+ pr_err("%s: handle pointer is invalid\n", __func__);
+ return;
+ }
+ if (IS_ERR_OR_NULL(handle->buffer)) {
+ pr_err("%s: buffer pointer is invalid\n", __func__);
+ return;
+ }
+
mutex_lock(&client->lock);
buffer = handle->buffer;