diff options
author | William Wilgus <wilgus.william@gmail.com> | 2022-10-15 09:08:09 -0400 |
---|---|---|
committer | William Wilgus <me.theuser@yahoo.com> | 2022-10-15 09:26:58 -0400 |
commit | 12ef045fdf5a9e2b4d5618cc3b7ba50ecc0ccf69 (patch) | |
tree | b4885951a5cba1b78c21b30ce37a1d6f1574aa5f /firmware/common/zip.c | |
parent | 9d3d925295112a0080bc1d70fad170db9e1af2a9 (diff) | |
download | rockbox-12ef045fdf5a9e2b4d5618cc3b7ba50ecc0ccf69.tar.gz rockbox-12ef045fdf5a9e2b4d5618cc3b7ba50ecc0ccf69.zip |
move buflib_free invalid handle check to the function
allow buflib_free to check for invalid or already freed handles
within the function -- remove all the invalid handle guards thru core_free
Change-Id: Ibdcbc82760fc93b674c42283fca420d94907df8e
Diffstat (limited to 'firmware/common/zip.c')
-rw-r--r-- | firmware/common/zip.c | 20 |
1 files changed, 7 insertions, 13 deletions
diff --git a/firmware/common/zip.c b/firmware/common/zip.c index 36b90a9223..22c6226e3b 100644 --- a/firmware/common/zip.c +++ b/firmware/common/zip.c | |||
@@ -237,8 +237,7 @@ static int zip_read_ed(struct zip* z) { | |||
237 | rv = 0; | 237 | rv = 0; |
238 | 238 | ||
239 | bail: | 239 | bail: |
240 | if (mem_handle >= 0) | 240 | core_free(mem_handle); |
241 | core_free(mem_handle); | ||
242 | return rv; | 241 | return rv; |
243 | } | 242 | } |
244 | 243 | ||
@@ -337,10 +336,9 @@ static int zip_read_cd(struct zip* z, bool use_cb) { | |||
337 | rv = 0; | 336 | rv = 0; |
338 | 337 | ||
339 | bail: | 338 | bail: |
340 | if (rv != 0 && cds_handle >= 0) | 339 | if (rv != 0) |
341 | core_free(cds_handle); | 340 | core_free(cds_handle); |
342 | if (mem_handle >= 0) | 341 | core_free(mem_handle); |
343 | core_free(mem_handle); | ||
344 | return rv; | 342 | return rv; |
345 | } | 343 | } |
346 | 344 | ||
@@ -497,8 +495,7 @@ static int zip_read_entries(struct zip* z) { | |||
497 | rv = 0; | 495 | rv = 0; |
498 | 496 | ||
499 | bail: | 497 | bail: |
500 | if (mem_handle >= 0) | 498 | core_free(mem_handle); |
501 | core_free(mem_handle); | ||
502 | return rv; | 499 | return rv; |
503 | } | 500 | } |
504 | 501 | ||
@@ -754,10 +751,8 @@ struct zip* zip_open(const char* name, bool try_mem) { | |||
754 | bail: | 751 | bail: |
755 | if (file >= 0) | 752 | if (file >= 0) |
756 | close(file); | 753 | close(file); |
757 | if (mem_handle >= 0) | 754 | core_free(mem_handle); |
758 | core_free(mem_handle); | 755 | core_free(zip_handle); |
759 | if (zip_handle >= 0) | ||
760 | core_free(zip_handle); | ||
761 | return NULL; | 756 | return NULL; |
762 | } | 757 | } |
763 | 758 | ||
@@ -875,8 +870,7 @@ void zip_close(struct zip* z) { | |||
875 | 870 | ||
876 | z->close(z); | 871 | z->close(z); |
877 | 872 | ||
878 | if (z->cds_handle >= 0) | 873 | core_free(z->cds_handle); |
879 | core_free(z->cds_handle); | ||
880 | 874 | ||
881 | core_free(z->zip_handle); | 875 | core_free(z->zip_handle); |
882 | } | 876 | } |