Alfred Agrell (@Alcaro) commented about dlls/windowscodecs/libpng.c:
/* This chunk is considered metadata. */ if (*count == metadata_blocks_size) {
struct decoder_block *new_metadata_blocks;
ULONG new_metadata_blocks_size;
new_metadata_blocks_size = 4 + metadata_blocks_size * 2;
new_metadata_blocks = malloc(new_metadata_blocks_size * sizeof(*new_metadata_blocks));
metadata_blocks_size = 4 + metadata_blocks_size * 2;
result = realloc(result, metadata_blocks_size * sizeof(*result));
If realloc fails, the original memory area remains unchanged. x = realloc(x, y) loses the original pointer, yielding a memory leak.