Skip to content

Commit

Permalink
ok, tweaking the fclose leak fix on write failure so it occurs AFTER …
Browse files Browse the repository at this point in the history
…the src file is opened, to prevent the dest archive from expanding in case the src file is missing (should be harmless though)
  • Loading branch information
[email protected] committed Oct 14, 2013
1 parent 54c4c73 commit 90352e2
Showing 1 changed file with 6 additions and 4 deletions.
10 changes: 6 additions & 4 deletions miniz.c
Original file line number Diff line number Diff line change
Expand Up @@ -4439,10 +4439,7 @@ mz_bool mz_zip_writer_add_file(mz_zip_archive *pZip, const char *pArchive_name,

if (!mz_zip_get_file_modified_time(pSrc_filename, &dos_time, &dos_date))
return MZ_FALSE;

if (!mz_zip_writer_write_zeros(pZip, cur_archive_file_ofs, num_alignment_padding_bytes + sizeof(local_dir_header)))
return MZ_FALSE;


pSrc_file = MZ_FOPEN(pSrc_filename, "rb");
if (!pSrc_file)
return MZ_FALSE;
Expand All @@ -4459,6 +4456,11 @@ mz_bool mz_zip_writer_add_file(mz_zip_archive *pZip, const char *pArchive_name,
if (uncomp_size <= 3)
level = 0;

if (!mz_zip_writer_write_zeros(pZip, cur_archive_file_ofs, num_alignment_padding_bytes + sizeof(local_dir_header)))
{
MZ_FCLOSE(pSrc_file);
return MZ_FALSE;
}
local_dir_header_ofs += num_alignment_padding_bytes;
if (pZip->m_file_offset_alignment) { MZ_ASSERT((local_dir_header_ofs & (pZip->m_file_offset_alignment - 1)) == 0); }
cur_archive_file_ofs += num_alignment_padding_bytes + sizeof(local_dir_header);
Expand Down

0 comments on commit 90352e2

Please sign in to comment.