mirror of
				https://github.com/eledio-devices/thirdparty-miniz.git
				synced 2025-10-31 08:42:39 +01:00 
			
		
		
		
	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:
		
							
								
								
									
										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); | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user