diff options
author | Kangjie Lu <kjlu@umn.edu> | 2019-03-14 09:55:31 +0300 |
---|---|---|
committer | Mika Westerberg <mika.westerberg@linux.intel.com> | 2019-03-20 13:37:12 +0300 |
commit | e4dfdd5804cce1255f99c5dd033526a18135a616 (patch) | |
tree | f3afb48c0ef326d5511ac23dba4b25cbf9fd5a25 /drivers/thunderbolt/property.c | |
parent | 106204b56f60abf1bead7dceb88f2be3e34433da (diff) | |
download | linux-e4dfdd5804cce1255f99c5dd033526a18135a616.tar.xz |
thunderbolt: Fix a missing check of kmemdup
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 <kjlu@umn.edu>
Signed-off-by: Mika Westerberg <mika.westerberg@linux.intel.com>
Diffstat (limited to 'drivers/thunderbolt/property.c')
-rw-r--r-- | drivers/thunderbolt/property.c | 4 |
1 files changed, 4 insertions, 0 deletions
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 */ } |