diff options
author | Jean-Baptiste Queru <jbq@google.com> | 2012-08-20 09:19:09 -0700 |
---|---|---|
committer | android code review <noreply-gerritcodereview@google.com> | 2012-08-20 09:19:09 -0700 |
commit | ed2e672f3b929ac49617de11e6530c812b082eb6 (patch) | |
tree | 67a998ba803d31dcd1ed8bbb5a41234f95690ef8 | |
parent | 7c386a610d9164c12932452d1ff671e070956ec1 (diff) | |
parent | 64ba258b7a17fd5f0abd788c1b021ad45ad732b9 (diff) | |
download | system_core-ed2e672f3b929ac49617de11e6530c812b082eb6.zip system_core-ed2e672f3b929ac49617de11e6530c812b082eb6.tar.gz system_core-ed2e672f3b929ac49617de11e6530c812b082eb6.tar.bz2 |
Merge "Print strerror for file read errors during flashing"
-rw-r--r-- | fastboot/fastboot.c | 19 |
1 files changed, 11 insertions, 8 deletions
diff --git a/fastboot/fastboot.c b/fastboot/fastboot.c index 57363d8..b6eab8c 100644 --- a/fastboot/fastboot.c +++ b/fastboot/fastboot.c @@ -156,6 +156,7 @@ void *load_file(const char *fn, unsigned *_sz) char *data; int sz; int fd; + int errno_tmp; data = 0; fd = open(fn, O_RDONLY); @@ -176,8 +177,10 @@ void *load_file(const char *fn, unsigned *_sz) return data; oops: + errno_tmp = errno; close(fd); if(data != 0) free(data); + errno = errno_tmp; return 0; } #endif @@ -298,7 +301,7 @@ void *load_bootable_image(unsigned page_size, const char *kernel, const char *ra kdata = load_file(kernel, &ksize); if(kdata == 0) { - fprintf(stderr, "cannot load '%s'\n", kernel); + fprintf(stderr, "cannot load '%s': %s\n", kernel, strerror(errno)); return 0; } @@ -318,7 +321,7 @@ void *load_bootable_image(unsigned page_size, const char *kernel, const char *ra if(ramdisk) { rdata = load_file(ramdisk, &rsize); if(rdata == 0) { - fprintf(stderr,"cannot load '%s'\n", ramdisk); + fprintf(stderr,"cannot load '%s': %s\n", ramdisk, strerror(errno)); return 0; } } @@ -564,7 +567,7 @@ void do_flash(usb_handle *usb, const char *pname, const char *fname) } else { unsigned int sz; data = load_file(fname, &sz); - if (data == 0) die("cannot load '%s'\n", fname); + if (data == 0) die("cannot load '%s': %s\n", fname, strerror(errno)); fb_queue_flash(pname, data, sz); } } @@ -592,7 +595,7 @@ void do_update(char *fn) fb_queue_query_save("product", cur_product, sizeof(cur_product)); zdata = load_file(fn, &zsize); - if (zdata == 0) die("failed to load '%s'", fn); + if (zdata == 0) die("failed to load '%s': %s", fn, strerror(errno)); zip = init_zipfile(zdata, zsize); if(zip == 0) die("failed to access zipdata in '%s'"); @@ -662,12 +665,12 @@ void do_flashall(void) fname = find_item("info", product); if (fname == 0) die("cannot find android-info.txt"); data = load_file(fname, &sz); - if (data == 0) die("could not load android-info.txt"); + if (data == 0) die("could not load android-info.txt: %s", strerror(errno)); setup_requirements(data, sz); fname = find_item("boot", product); data = load_file(fname, &sz); - if (data == 0) die("could not load boot.img"); + if (data == 0) die("could not load boot.img: %s", strerror(errno)); do_send_signature(fname); fb_queue_flash("boot", data, sz); @@ -680,7 +683,7 @@ void do_flashall(void) fname = find_item("system", product); data = load_file(fname, &sz); - if (data == 0) die("could not load system.img"); + if (data == 0) die("could not load system.img: %s", strerror(errno)); do_send_signature(fname); fb_queue_flash("system", data, sz); } @@ -847,7 +850,7 @@ int main(int argc, char **argv) } else if(!strcmp(*argv, "signature")) { require(2); data = load_file(argv[1], &sz); - if (data == 0) die("could not load '%s'", argv[1]); + if (data == 0) die("could not load '%s': %s", argv[1], strerror(errno)); if (sz != 256) die("signature must be 256 bytes"); fb_queue_download("signature", data, sz); fb_queue_command("signature", "installing signature"); |