提交 5a803902 编写于 作者: J Jiasheng Jiang 提交者: Zheng Zengkai

thermal: int340x: Check for NULL after calling kmemdup()

stable inclusion
from stable-v5.10.110
commit 71dba67138f6f8dfe2d2f1588d23c3572f14a13b
bugzilla: https://gitee.com/openeuler/kernel/issues/I574AL

Reference: https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?id=71dba67138f6f8dfe2d2f1588d23c3572f14a13b

--------------------------------

[ Upstream commit 38b16d6c ]

As the potential failure of the allocation, kmemdup() may return NULL.

Then, 'bin_attr_data_vault.private' will be NULL, but
'bin_attr_data_vault.size' is not 0, which is not consistent.

Therefore, it is better to check the return value of kmemdup() to
avoid the confusion.

Fixes: 0ba13c76 ("thermal/int340x_thermal: Export GDDV")
Signed-off-by: NJiasheng Jiang <jiasheng@iscas.ac.cn>
[ rjw: Subject and changelog edits ]
Signed-off-by: NRafael J. Wysocki <rafael.j.wysocki@intel.com>
Signed-off-by: NSasha Levin <sashal@kernel.org>
Signed-off-by: NYu Liao <liaoyu15@huawei.com>
Reviewed-by: NWei Li <liwei391@huawei.com>
Signed-off-by: NZheng Zengkai <zhengzengkai@huawei.com>
上级 ae8e6311
...@@ -466,6 +466,11 @@ static void int3400_setup_gddv(struct int3400_thermal_priv *priv) ...@@ -466,6 +466,11 @@ static void int3400_setup_gddv(struct int3400_thermal_priv *priv)
priv->data_vault = kmemdup(obj->package.elements[0].buffer.pointer, priv->data_vault = kmemdup(obj->package.elements[0].buffer.pointer,
obj->package.elements[0].buffer.length, obj->package.elements[0].buffer.length,
GFP_KERNEL); GFP_KERNEL);
if (!priv->data_vault) {
kfree(buffer.pointer);
return;
}
bin_attr_data_vault.private = priv->data_vault; bin_attr_data_vault.private = priv->data_vault;
bin_attr_data_vault.size = obj->package.elements[0].buffer.length; bin_attr_data_vault.size = obj->package.elements[0].buffer.length;
kfree(buffer.pointer); kfree(buffer.pointer);
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册