Merge "Fix file descriptor leak when opening invalid archives."
This commit is contained in:
commit
d3d32a1b13
|
@ -25,7 +25,7 @@ LOCAL_SRC_FILES := protocol.c engine.c bootimg_utils.cpp fastboot.cpp util.c fs.
|
|||
LOCAL_MODULE := fastboot
|
||||
LOCAL_MODULE_TAGS := debug
|
||||
LOCAL_CONLYFLAGS += -std=gnu99
|
||||
LOCAL_CFLAGS += -Wall -Wextra -Werror
|
||||
LOCAL_CFLAGS += -Wall -Wextra -Werror -Wunreachable-code
|
||||
|
||||
LOCAL_CFLAGS += -DFASTBOOT_REVISION='"$(fastboot_version)"'
|
||||
|
||||
|
|
|
@ -721,12 +721,14 @@ void do_update(usb_handle *usb, const char *filename, int erase_first)
|
|||
ZipArchiveHandle zip;
|
||||
int error = OpenArchive(filename, &zip);
|
||||
if (error != 0) {
|
||||
CloseArchive(zip);
|
||||
die("failed to open zip file '%s': %s", filename, ErrorCodeString(error));
|
||||
}
|
||||
|
||||
unsigned sz;
|
||||
void* data = unzip_file(zip, "android-info.txt", &sz);
|
||||
if (data == 0) {
|
||||
CloseArchive(zip);
|
||||
die("update package '%s' has no android-info.txt", filename);
|
||||
}
|
||||
|
||||
|
@ -738,6 +740,7 @@ void do_update(usb_handle *usb, const char *filename, int erase_first)
|
|||
if (images[i].is_optional) {
|
||||
continue;
|
||||
}
|
||||
CloseArchive(zip);
|
||||
exit(1); // unzip_to_file already explained why.
|
||||
}
|
||||
fastboot_buffer buf;
|
||||
|
|
|
@ -69,7 +69,7 @@ int fb_queue_is_empty(void);
|
|||
/* util stuff */
|
||||
double now();
|
||||
char *mkmsg(const char *fmt, ...);
|
||||
void die(const char *fmt, ...);
|
||||
__attribute__((__noreturn__)) void die(const char *fmt, ...);
|
||||
|
||||
void get_my_path(char *path);
|
||||
|
||||
|
|
Loading…
Reference in New Issue