Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit ec19cf63 authored by Bowgo Tsai's avatar Bowgo Tsai
Browse files

first stage mount: abort when failed to parse fstab in device-tree

The client of FirstStageMount class should check the existence of fstab
in device-tree prior to using it. So raising a FATAL error inside
FirstStageMount when failed to parsing the fstab, in order to expose
more accurate error messages.

Also fixing a comment in fs_mgr, where it might happen in either
non-A/B or A/B.

Bug: 69102431
Test: boot sailfish
Change-Id: Ifb525beaa3423b118644778bfe0f84bff9465303
parent ebcfa449
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -40,7 +40,7 @@ bool fs_mgr_update_for_slotselect(struct fstab *fstab) {
            char *tmp;
            if (ab_suffix.empty()) {
                ab_suffix = fs_mgr_get_slot_suffix();
                // Returns false as non A/B devices should not have MF_SLOTSELECT.
                // Return false if failed to get ab_suffix when MF_SLOTSELECT is specified.
                if (ab_suffix.empty()) return false;
            }
            if (asprintf(&tmp, "%s%s", fstab->recs[n].blk_device, ab_suffix.c_str()) > 0) {
+4 −1
Original line number Diff line number Diff line
@@ -118,7 +118,10 @@ static bool inline IsRecoveryMode() {
FirstStageMount::FirstStageMount()
    : need_dm_verity_(false), device_tree_fstab_(fs_mgr_read_fstab_dt(), fs_mgr_free_fstab) {
    if (!device_tree_fstab_) {
        LOG(ERROR) << "Failed to read fstab from device tree";
        // The client of FirstStageMount should check the existence of fstab in device-tree
        // in advance, without parsing it. Reaching here means there is a FATAL error when
        // parsing the fstab. So stop here to expose the failure.
        LOG(FATAL) << "Failed to read fstab from device tree";
        return;
    }
    // Stores device_tree_fstab_->recs[] into mount_fstab_recs_ (vector<fstab_rec*>)