On 19 August 2014 11:43, Paolo Bonzini <pbonz...@redhat.com> wrote:
> From: Peter Crosthwaite <peter.crosthwa...@xilinx.com>
>
> Rather than having the name as separate state. This prepares support
> for creating a MemoryRegion dynamically (i.e. without
> memory_region_init() and friends) and the MemoryRegion still getting
> a usable name.
> @@ -1310,7 +1308,7 @@ uint64_t memory_region_size(MemoryRegion *mr)
>
>  const char *memory_region_name(const MemoryRegion *mr)
>  {
> -    return mr->name;
> +    return object_get_canonical_path_component(OBJECT(mr));
>  }

This doesn't look right. It changes the semantics of this function
from "returns a string which you don't own and can't change
but don't need to free" to "returns a copy of a string which you
have to free with g_free() when you're done". Unsurprisingly,
the callsites aren't expecting this and we leak the string all
over the place.

I think we need to revert this (commit b0225c2c0d8) until
both the Xen callsites are fixed and the leak issue is
dealt with.

thanks
-- PMM

Reply via email to