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

Commit d3d32a1b authored by Elliott Hughes's avatar Elliott Hughes Committed by Gerrit Code Review
Browse files

Merge "Fix file descriptor leak when opening invalid archives."

parents 493cdcbb f6e9ffbc
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -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)"'

+3 −0
Original line number Diff line number Diff line
@@ -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;
+1 −1
Original line number Diff line number Diff line
@@ -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);