LFU-15 Fix using uninitialized value
authorJi Luo <ji.luo@nxp.com>
Thu, 17 Dec 2020 06:03:06 +0000 (14:03 +0800)
committerJi Luo <ji.luo@nxp.com>
Wed, 19 May 2021 12:07:14 +0000 (20:07 +0800)
This commit fixes Coverity Issue: 11468195, avoid
uninitialized value using.

Test: AVB check.

Change-Id: I04eb8faafd6c9a9fec1aeae0b29edc6940251094
Signed-off-by: Ji Luo <ji.luo@nxp.com>
(cherry picked from commit 742cc182bf9d0d0a7c8cecdac2a328e5c0bd64cb)

lib/avb/fsl/fsl_bootctrl.c

index abb6a12..e98ce25 100755 (executable)
@@ -869,10 +869,9 @@ AvbABFlowResult avb_flow_dual_uboot(AvbABOps* ab_ops,
        AvbOps* ops = ab_ops->ops;
        AvbSlotVerifyData* slot_data = NULL;
        AvbSlotVerifyData* data = NULL;
-       AvbABFlowResult ret;
+       AvbABFlowResult ret = 0;
        struct bootloader_control ab_data, ab_data_orig;
        AvbIOResult io_ret;
-       bool saw_and_allowed_verification_error = false;
        AvbSlotVerifyResult verify_result;
        bool set_slot_unbootable = false;
        int target_slot, n;
@@ -941,8 +940,7 @@ AvbABFlowResult avb_flow_dual_uboot(AvbABOps* ab_ops,
                                           "AVB_SLOT_VERIFY_FLAGS_ALLOW_VERIFICATION_ERROR "
                                           "is set.\n",
                                           NULL);
-                               saw_and_allowed_verification_error =
-                                        true;
+                               ret = AVB_AB_FLOW_RESULT_OK_WITH_VERIFICATION_ERROR;
                        } else {
                                set_slot_unbootable = true;
                        }
@@ -1021,13 +1019,6 @@ AvbABFlowResult avb_flow_dual_uboot(AvbABOps* ab_ops,
        avb_assert(slot_data != NULL);
        data = slot_data;
        slot_data = NULL;
-       if (saw_and_allowed_verification_error) {
-               avb_assert(
-                       flags & AVB_SLOT_VERIFY_FLAGS_ALLOW_VERIFICATION_ERROR);
-               ret = AVB_AB_FLOW_RESULT_OK_WITH_VERIFICATION_ERROR;
-       } else {
-               ret = AVB_AB_FLOW_RESULT_OK;
-       }
 
 out:
        io_ret = fsl_save_metadata_if_changed(ab_ops, &ab_data, &ab_data_orig);
@@ -1193,11 +1184,10 @@ AvbABFlowResult avb_ab_flow_fast(AvbABOps* ab_ops,
        AvbOps* ops = ab_ops->ops;
        AvbSlotVerifyData* slot_data[2] = {NULL, NULL};
        AvbSlotVerifyData* data = NULL;
-       AvbABFlowResult ret;
+       AvbABFlowResult ret = 0;
        struct bootloader_control ab_data, ab_data_orig;
        size_t slot_index_to_boot, n;
        AvbIOResult io_ret;
-       bool saw_and_allowed_verification_error = false;
        size_t target_slot;
        AvbSlotVerifyResult verify_result;
        bool set_slot_unbootable = false;
@@ -1266,9 +1256,8 @@ AvbABFlowResult avb_ab_flow_fast(AvbABOps* ab_ops,
                                                   "AVB_SLOT_VERIFY_FLAGS_ALLOW_VERIFICATION_ERROR "
                                                   "is set.\n",
                                                   NULL);
-                                       saw_and_allowed_verification_error =
-                                                true;
                                        slot_index_to_boot = target_slot;
+                                       ret = AVB_AB_FLOW_RESULT_OK_WITH_VERIFICATION_ERROR;
                                        n = 2;
                                } else {
                                        set_slot_unbootable = true;
@@ -1356,13 +1345,6 @@ AvbABFlowResult avb_ab_flow_fast(AvbABOps* ab_ops,
        avb_assert(slot_data[slot_index_to_boot] != NULL);
        data = slot_data[slot_index_to_boot];
        slot_data[slot_index_to_boot] = NULL;
-       if (saw_and_allowed_verification_error) {
-               avb_assert(
-                       flags & AVB_SLOT_VERIFY_FLAGS_ALLOW_VERIFICATION_ERROR);
-               ret = AVB_AB_FLOW_RESULT_OK_WITH_VERIFICATION_ERROR;
-       } else {
-               ret = AVB_AB_FLOW_RESULT_OK;
-       }
 
        /* ... and decrement tries remaining, if applicable. */
        if (!ab_data.slot_info[slot_index_to_boot].successful_boot &&