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

Commit 92eea1bc authored by Sami Tolvanen's avatar Sami Tolvanen
Browse files

Handle BLKDISCARD failures

In the block updater, if BLKDISCARD fails, the error is silently
ignored and some of the blocks may not be erased. This means the
target partition will have inconsistent contents.

If the ioctl fails, return an error and abort the update.

Bug: 20614277
Change-Id: I33867ba9337c514de8ffae59f28584b285324067
(cherry picked from commit cc2428c8)
parent 158e11d6
Loading
Loading
Loading
Loading
+1 −2
Original line number Diff line number Diff line
@@ -1424,7 +1424,6 @@ static int PerformCommandErase(CommandParameters* params) {

    if (!S_ISBLK(st.st_mode)) {
        fprintf(stderr, "not a block device; skipping erase\n");
        rc = 0;
        goto pceout;
    }

@@ -1448,7 +1447,7 @@ static int PerformCommandErase(CommandParameters* params) {

            if (ioctl(params->fd, BLKDISCARD, &blocks) == -1) {
                fprintf(stderr, "BLKDISCARD ioctl failed: %s\n", strerror(errno));
                // Continue anyway, nothing we can do
                goto pceout;
            }
        }
    }