]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
powerpc/kexec: Fix return of uninitialized variable
authorZhang Zekun <zhangzekun11@huawei.com>
Mon, 30 Sep 2024 07:56:28 +0000 (15:56 +0800)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Sat, 14 Dec 2024 18:51:03 +0000 (19:51 +0100)
[ Upstream commit 83b5a407fbb73e6965adfb4bd0a803724bf87f96 ]

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
Signed-off-by: Sasha Levin <sashal@kernel.org>
arch/powerpc/kexec/file_load_64.c

index 5056e175ca2c4f57f9e9fb13017fd48bd4d4ce55..bce1bef0be8998e7b5063675aa40bffb5dc0d49a 100644 (file)
@@ -909,13 +909,18 @@ int setup_purgatory_ppc64(struct kimage *image, const void *slave_code,
        if (dn) {
                u64 val;
 
-               of_property_read_u64(dn, "opal-base-address", &val);
+               ret = of_property_read_u64(dn, "opal-base-address", &val);
+               if (ret)
+                       goto out;
+
                ret = kexec_purgatory_get_set_symbol(image, "opal_base", &val,
                                                     sizeof(val), false);
                if (ret)
                        goto out;
 
-               of_property_read_u64(dn, "opal-entry-address", &val);
+               ret = of_property_read_u64(dn, "opal-entry-address", &val);
+               if (ret)
+                       goto out;
                ret = kexec_purgatory_get_set_symbol(image, "opal_entry", &val,
                                                     sizeof(val), false);
        }