Make operation reversable
Before didn't write the final IEND chunk
This commit is contained in:
		| @@ -126,7 +126,7 @@ int get_number_of_chunks(png_chunk **chunks) { | |||||||
| 	while (memcmp(chunks[i]->type, "IEND", 4) != 0) { | 	while (memcmp(chunks[i]->type, "IEND", 4) != 0) { | ||||||
| 		i++; | 		i++; | ||||||
| 	} | 	} | ||||||
| 	return i; | 	return ++i; | ||||||
| } | } | ||||||
|  |  | ||||||
| void xor_data(png_chunk *chunk) { | void xor_data(png_chunk *chunk) { | ||||||
| @@ -139,8 +139,7 @@ void xor_data(png_chunk *chunk) { | |||||||
|  |  | ||||||
| void destroy_chunks(png_chunk **chunks) { | void destroy_chunks(png_chunk **chunks) { | ||||||
| 	unsigned int size = get_number_of_chunks(chunks); | 	unsigned int size = get_number_of_chunks(chunks); | ||||||
| 	// +1 for IEND chunk | 	for (int i = 0; i < size; i++) { | ||||||
| 	for (int i = 0; i < size + 1; i++) { |  | ||||||
| 		free(chunks[i]->data); | 		free(chunks[i]->data); | ||||||
| 		free(chunks[i]); | 		free(chunks[i]); | ||||||
| 	} | 	} | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user