Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

powerpc/kexec: Fix return of uninitialized variable

of_property_read_u64() can fail and leave the variable uninitialized,
which will then be used. Return error if reading the property failed.

Fixes: 2e6bd221d96f ("powerpc/kexec_file: Enable early kernel OPAL calls")
Signed-off-by: Zhang Zekun <zhangzekun11@huawei.com>
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
Link: https://patch.msgid.link/20240930075628.125138-1-zhangzekun11@huawei.com

authored by

Zhang Zekun and committed by
Michael Ellerman
83b5a407 352268dc

+7 -2
+7 -2
arch/powerpc/kexec/file_load_64.c
··· 736 736 if (dn) { 737 737 u64 val; 738 738 739 - of_property_read_u64(dn, "opal-base-address", &val); 739 + ret = of_property_read_u64(dn, "opal-base-address", &val); 740 + if (ret) 741 + goto out; 742 + 740 743 ret = kexec_purgatory_get_set_symbol(image, "opal_base", &val, 741 744 sizeof(val), false); 742 745 if (ret) 743 746 goto out; 744 747 745 - of_property_read_u64(dn, "opal-entry-address", &val); 748 + ret = of_property_read_u64(dn, "opal-entry-address", &val); 749 + if (ret) 750 + goto out; 746 751 ret = kexec_purgatory_get_set_symbol(image, "opal_entry", &val, 747 752 sizeof(val), false); 748 753 }