The of_property_read_u64() can fail and remain the variable uninitialized,
which will then be used. Return error if we failed to read the property.

Fixes: 2e6bd221d96f ("powerpc/kexec_file: Enable early kernel OPAL calls")
Signed-off-by: Zhang Zekun <zhangzeku...@huawei.com>
---
 arch/powerpc/kexec/file_load_64.c | 9 +++++++--
 1 file changed, 7 insertions(+), 2 deletions(-)

diff --git a/arch/powerpc/kexec/file_load_64.c 
b/arch/powerpc/kexec/file_load_64.c
index 9738adabeb1f..dc65c1391157 100644
--- a/arch/powerpc/kexec/file_load_64.c
+++ b/arch/powerpc/kexec/file_load_64.c
@@ -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);
        }
-- 
2.17.1


Reply via email to