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