diff --git a/drivers/ub/urma/ubcore/ubcore_genl_admin.c b/drivers/ub/urma/ubcore/ubcore_genl_admin.c index 5b49137efb06a6e5c0428212b02e103fc00ec7cd..ca71f7aff2edd6a79d9b2f2ca322de370ba6ad18 100644 --- a/drivers/ub/urma/ubcore/ubcore_genl_admin.c +++ b/drivers/ub/urma/ubcore/ubcore_genl_admin.c @@ -332,8 +332,11 @@ int ubcore_get_topo_info(struct sk_buff *skb, struct genl_info *info) args_addr = nla_get_u64(info->attrs[UBCORE_HDR_ARGS_ADDR]); ret = ubcore_copy_from_user(arg, (void __user *)(uintptr_t)args_addr, sizeof(struct ubcore_cmd_topo_info)); - if (ret != 0) + if (ret != 0) { + ubcore_log_err("Failed to copy from user.\n"); + kfree(arg); return -EPERM; + } topo_map = ubcore_get_global_topo_map(); if (topo_map == NULL) { ubcore_log_err("topo map is empty!\n");