summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJean-Baptiste Queru <jbq@google.com>2012-08-20 09:19:09 -0700
committerandroid code review <noreply-gerritcodereview@google.com>2012-08-20 09:19:09 -0700
commited2e672f3b929ac49617de11e6530c812b082eb6 (patch)
tree67a998ba803d31dcd1ed8bbb5a41234f95690ef8
parent7c386a610d9164c12932452d1ff671e070956ec1 (diff)
parent64ba258b7a17fd5f0abd788c1b021ad45ad732b9 (diff)
downloadsystem_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.c19
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");