From: Todd Poynor <toddpoy...@google.com>

If kcalloc() returns NULL in put_mapping(), continue to clean up state,
including dropping the reference on the struct device and free attribute
memory.

Signed-off-by: Todd Poynor <toddpoy...@google.com>
---
 drivers/staging/gasket/gasket_sysfs.c | 13 ++++++-------
 1 file changed, 6 insertions(+), 7 deletions(-)

diff --git a/drivers/staging/gasket/gasket_sysfs.c 
b/drivers/staging/gasket/gasket_sysfs.c
index 56d62aea51118..fc45f0d13e87d 100644
--- a/drivers/staging/gasket/gasket_sysfs.c
+++ b/drivers/staging/gasket/gasket_sysfs.c
@@ -101,13 +101,12 @@ static void put_mapping(struct gasket_sysfs_mapping 
*mapping)
                files_to_remove = kcalloc(num_files_to_remove,
                                          sizeof(*files_to_remove),
                                          GFP_KERNEL);
-               if (!files_to_remove) {
-                       mutex_unlock(&mapping->mutex);
-                       return;
-               }
-
-               for (i = 0; i < num_files_to_remove; i++)
-                       files_to_remove[i] = mapping->attributes[i].attr;
+               if (files_to_remove)
+                       for (i = 0; i < num_files_to_remove; i++)
+                               files_to_remove[i] =
+                                   mapping->attributes[i].attr;
+               else
+                       num_files_to_remove = 0;
 
                kfree(mapping->attributes);
                mapping->attributes = NULL;
-- 
2.18.0.597.ga71716f1ad-goog

Reply via email to