Minor fix to mz_zip_writer_add_file - moving local header+alignment byte write up before the src file is open to avoid an fclose() leak
This commit is contained in:
parent
2d8997f48c
commit
54c4c73ab6
5
miniz.c
5
miniz.c
@ -4440,6 +4440,9 @@ 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))
|
if (!mz_zip_get_file_modified_time(pSrc_filename, &dos_time, &dos_date))
|
||||||
return MZ_FALSE;
|
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");
|
pSrc_file = MZ_FOPEN(pSrc_filename, "rb");
|
||||||
if (!pSrc_file)
|
if (!pSrc_file)
|
||||||
return MZ_FALSE;
|
return MZ_FALSE;
|
||||||
@ -4456,8 +4459,6 @@ mz_bool mz_zip_writer_add_file(mz_zip_archive *pZip, const char *pArchive_name,
|
|||||||
if (uncomp_size <= 3)
|
if (uncomp_size <= 3)
|
||||||
level = 0;
|
level = 0;
|
||||||
|
|
||||||
if (!mz_zip_writer_write_zeros(pZip, cur_archive_file_ofs, num_alignment_padding_bytes + sizeof(local_dir_header)))
|
|
||||||
return MZ_FALSE;
|
|
||||||
local_dir_header_ofs += num_alignment_padding_bytes;
|
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); }
|
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);
|
cur_archive_file_ofs += num_alignment_padding_bytes + sizeof(local_dir_header);
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user