thunderbolt: Fix to check the return value of kmemdup

uuid in add_switch is allocted via kmemdup which can fail. The patch
logs the error and cleans up the allocated memory for switch.

Signed-off-by: Aditya Pakki <pakki001@umn.edu>
Reviewed-by: Mukesh Ojha <mojha@codeaurora.org>
Signed-off-by: Mika Westerberg <mika.westerberg@linux.intel.com>
This commit is contained in:
Aditya Pakki 2019-03-25 16:25:22 -05:00 committed by Mika Westerberg
parent 6183d5a518
commit fd21b79e54

View File

@ -473,6 +473,11 @@ static void add_switch(struct tb_switch *parent_sw, u64 route,
goto out; goto out;
sw->uuid = kmemdup(uuid, sizeof(*uuid), GFP_KERNEL); sw->uuid = kmemdup(uuid, sizeof(*uuid), GFP_KERNEL);
if (!sw->uuid) {
tb_sw_warn(sw, "cannot allocate memory for switch\n");
tb_switch_put(sw);
goto out;
}
sw->connection_id = connection_id; sw->connection_id = connection_id;
sw->connection_key = connection_key; sw->connection_key = connection_key;
sw->link = link; sw->link = link;