kmemdup may fail and return NULL. The fix adds a check and returns
NULL in case it fails to avoid NULL pointer dereferecen.

Signed-off-by: Kangjie Lu <k...@umn.edu>
---
 drivers/thunderbolt/property.c | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/drivers/thunderbolt/property.c b/drivers/thunderbolt/property.c
index ee76449524a3..841314deb446 100644
--- a/drivers/thunderbolt/property.c
+++ b/drivers/thunderbolt/property.c
@@ -176,6 +176,10 @@ static struct tb_property_dir 
*__tb_property_parse_dir(const u32 *block,
        } else {
                dir->uuid = kmemdup(&block[dir_offset], sizeof(*dir->uuid),
                                    GFP_KERNEL);
+               if (!dir->uuid) {
+                       tb_property_free_dir(dir);
+                       return NULL;
+               }
                content_offset = dir_offset + 4;
                content_len = dir_len - 4; /* Length includes UUID */
        }
-- 
2.17.1

Reply via email to