fastboot: Don't leak file in error case

This is probably not very significant in this standalone tool,
but makes it easier for us to find leaks in our other system
code via static analysis.

(cherry-pick of 407a2195391685627e6be947491041ae3c8cbe61.)

Change-Id: I4e14cadc1e53bac0848e0e0c7f531f920e43cb0a
This commit is contained in:
Greg Kaiser 2016-08-11 11:34:16 -07:00 committed by Elliott Hughes
parent 07f14c9cdd
commit dc9b62ba74

View file

@ -519,6 +519,7 @@ static int unzip_to_file(ZipArchiveHandle zip, char* entry_name) {
ZipEntry zip_entry;
if (FindEntry(zip, zip_entry_name, &zip_entry) != 0) {
fprintf(stderr, "archive does not contain '%s'\n", entry_name);
fclose(fp);
return -1;
}
@ -526,10 +527,12 @@ static int unzip_to_file(ZipArchiveHandle zip, char* entry_name) {
int error = ExtractEntryToFile(zip, &zip_entry, fd);
if (error != 0) {
fprintf(stderr, "failed to extract '%s': %s\n", entry_name, ErrorCodeString(error));
fclose(fp);
return -1;
}
lseek(fd, 0, SEEK_SET);
// TODO: We're leaking 'fp' here.
return fd;
}