]> git.ipfire.org Git - thirdparty/kernel/linux.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)
committerMichael Ellerman <mpe@ellerman.id.au>
Thu, 14 Nov 2024 13:29:46 +0000 (00:29 +1100)
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
arch/powerpc/kexec/file_load_64.c

index 9738adabeb1feeaea9212c729e1f9a813552bc01..dc65c139115772bc4e19506d03af0e19fa5637ba 100644 (file)
@@ -736,13 +736,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);
        }