If the rawchunk is not properly aligned we'll create a new buffer
that is correctly aligned and put the data in that new buffer with
memcpy or the conversion function. In such cases the rawchunk leaks
because the new buffer is put into the Elf_Data_Chunk.
* libelf/elf_getdata_rawchunk.c (elf_getdata_rawchunk):
Call free on the rawchunk if new buffer was allocated.
Signed-off-by: Mark Wielaard <mark@klomp.org>
/* The copy will be appropriately aligned for direct access. */
memcpy (buffer, rawchunk, size);
+
+ free (rawchunk);
}
}
else
/* Call the conversion function. */
(*__elf_xfctstom[elf->class - 1][type])(buffer, rawchunk, size, 0);
+
+ if (!flags)
+ free (rawchunk);
}
/* Allocate the dummy container to point at this buffer. */