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

Commit 272b2694 authored by Elliott Hughes's avatar Elliott Hughes Committed by android-build-merger
Browse files

Merge "Report errno more often in fastboot."

am: 8c5384e5

* commit '8c5384e5':
  Report errno more often in fastboot.

Change-Id: I19a33597f29c1974063d4308eeccea60bbb350f5
parents 3f0a1262 8c5384e5
Loading
Loading
Loading
Loading
+17 −21
Original line number Diff line number Diff line
@@ -717,10 +717,10 @@ static bool needs_erase(Transport* transport, const char* partition) {
    return partition_type == "ext4";
}

static int load_buf_fd(Transport* transport, int fd, struct fastboot_buffer* buf) {
static bool load_buf_fd(Transport* transport, int fd, struct fastboot_buffer* buf) {
    int64_t sz = get_file_size(fd);
    if (sz == -1) {
        return -1;
        return false;
    }

    lseek64(fd, 0, SEEK_SET);
@@ -728,7 +728,7 @@ static int load_buf_fd(Transport* transport, int fd, struct fastboot_buffer* buf
    if (limit) {
        sparse_file** s = load_sparse_files(fd, limit);
        if (s == nullptr) {
            return -1;
            return false;
        }
        buf->type = FB_BUFFER_SPARSE;
        buf->data = s;
@@ -740,18 +740,14 @@ static int load_buf_fd(Transport* transport, int fd, struct fastboot_buffer* buf
        buf->sz = sz;
    }

    return 0;
    return true;
}

static int load_buf(Transport* transport, const char *fname, struct fastboot_buffer *buf)
{
    int fd;

    fd = open(fname, O_RDONLY | O_BINARY);
    if (fd < 0) {
        return -1;
static bool load_buf(Transport* transport, const char* fname, struct fastboot_buffer* buf) {
    int fd = open(fname, O_RDONLY | O_BINARY);
    if (fd == -1) {
        return false;
    }

    return load_buf_fd(transport, fd, buf);
}

@@ -895,8 +891,8 @@ static void do_for_partitions(Transport* transport, const char *part, const char
static void do_flash(Transport* transport, const char* pname, const char* fname) {
    struct fastboot_buffer buf;

    if (load_buf(transport, fname, &buf)) {
        die("cannot load '%s'", fname);
    if (!load_buf(transport, fname, &buf)) {
        die("cannot load '%s': %s", fname, strerror(errno));
    }
    flash_buf(pname, &buf);
}
@@ -940,8 +936,9 @@ static void do_update(Transport* transport, const char* filename, const char* sl
            exit(1); // unzip_to_file already explained why.
        }
        fastboot_buffer buf;
        int rc = load_buf_fd(transport, fd, &buf);
        if (rc) die("cannot load %s from flash", images[i].img_name);
        if (!load_buf_fd(transport, fd, &buf)) {
            die("cannot load %s from flash: %s", images[i].img_name, strerror(errno));
        }

        auto update = [&](const std::string &partition) {
            do_update_signature(zip, images[i].sig_name);
@@ -994,10 +991,9 @@ static void do_flashall(Transport* transport, const char* slot_override, int era
    for (size_t i = 0; i < ARRAY_SIZE(images); i++) {
        fname = find_item(images[i].part_name, product);
        fastboot_buffer buf;
        if (load_buf(transport, fname.c_str(), &buf)) {
            if (images[i].is_optional)
                continue;
            die("could not load %s\n", images[i].img_name);
        if (!load_buf(transport, fname.c_str(), &buf)) {
            if (images[i].is_optional) continue;
            die("could not load '%s': %s", images[i].img_name, strerror(errno));
        }

        auto flashall = [&](const std::string &partition) {
@@ -1164,7 +1160,7 @@ static void fb_perform_format(Transport* transport,
        return;
    }

    if (load_buf_fd(transport, fd, &buf)) {
    if (!load_buf_fd(transport, fd, &buf)) {
        fprintf(stderr, "Cannot read image: %s\n", strerror(errno));
        close(fd);
        return;