of: overlay: fix null pointer dereferencing in find_dup_cset_node_entry() and find_dup_cset_prop()
[ Upstream commit ee9d7a0e754568180a2f8ebc4aad226278a9116f ]
When kmalloc() fail to allocate memory in kasprintf(), fn_1 or fn_2 will
be NULL, and strcmp() will cause null pointer dereference.
Fixes: 2fe0e8769d
("of: overlay: check prevents multiple fragments touching same property")
Signed-off-by: ruanjinjie <ruanjinjie@huawei.com>
Link: https://lore.kernel.org/r/20221211023337.592266-1-ruanjinjie@huawei.com
Signed-off-by: Rob Herring <robh@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
This commit is contained in:
parent
a44490abaf
commit
9ec5781879
@ -547,7 +547,7 @@ static int find_dup_cset_node_entry(struct overlay_changeset *ovcs,
|
|||||||
|
|
||||||
fn_1 = kasprintf(GFP_KERNEL, "%pOF", ce_1->np);
|
fn_1 = kasprintf(GFP_KERNEL, "%pOF", ce_1->np);
|
||||||
fn_2 = kasprintf(GFP_KERNEL, "%pOF", ce_2->np);
|
fn_2 = kasprintf(GFP_KERNEL, "%pOF", ce_2->np);
|
||||||
node_path_match = !strcmp(fn_1, fn_2);
|
node_path_match = !fn_1 || !fn_2 || !strcmp(fn_1, fn_2);
|
||||||
kfree(fn_1);
|
kfree(fn_1);
|
||||||
kfree(fn_2);
|
kfree(fn_2);
|
||||||
if (node_path_match) {
|
if (node_path_match) {
|
||||||
@ -582,7 +582,7 @@ static int find_dup_cset_prop(struct overlay_changeset *ovcs,
|
|||||||
|
|
||||||
fn_1 = kasprintf(GFP_KERNEL, "%pOF", ce_1->np);
|
fn_1 = kasprintf(GFP_KERNEL, "%pOF", ce_1->np);
|
||||||
fn_2 = kasprintf(GFP_KERNEL, "%pOF", ce_2->np);
|
fn_2 = kasprintf(GFP_KERNEL, "%pOF", ce_2->np);
|
||||||
node_path_match = !strcmp(fn_1, fn_2);
|
node_path_match = !fn_1 || !fn_2 || !strcmp(fn_1, fn_2);
|
||||||
kfree(fn_1);
|
kfree(fn_1);
|
||||||
kfree(fn_2);
|
kfree(fn_2);
|
||||||
if (node_path_match &&
|
if (node_path_match &&
|
||||||
|
Loading…
Reference in New Issue
Block a user