On 04/17/2012 12:55 PM, Stefan Berger wrote: > The below patch fixes the following memory leak. > > ==20624== 24 bytes in 2 blocks are definitely lost in loss record 532 of > 1,867 > ==20624== at 0x4A05E46: malloc (vg_replace_malloc.c:195) > ==20624== by 0x38EC27FC01: strdup (strdup.c:43) > ==20624== by 0x4EB6BA3: virDomainChrSourceDefCopy (domain_conf.c:1122) > ==20624== by 0x495D76: qemuProcessFindCharDevicePTYs > (qemu_process.c:1497) > ==20624== by 0x498321: qemuProcessWaitForMonitor (qemu_process.c:1258) > ==20624== by 0x49B5F9: qemuProcessStart (qemu_process.c:3652) > ==20624== by 0x468B5C: qemuDomainObjStart (qemu_driver.c:4753) > ==20624== by 0x469171: qemuDomainStartWithFlags (qemu_driver.c:4810) > ==20624== by 0x4F21735: virDomainCreate (libvirt.c:8153) > ==20624== by 0x4302BF: remoteDispatchDomainCreateHelper > (remote_dispatch.h:852) > ==20624== by 0x4F72C14: virNetServerProgramDispatch > (virnetserverprogram.c:416) > ==20624== by 0x4F6D690: virNetServerHandleJob (virnetserver.c:164) > ==20624== by 0x4E8F43D: virThreadPoolWorker (threadpool.c:144) > ==20624== by 0x4E8EAB5: virThreadHelper (threads-pthread.c:161) > ==20624== by 0x38EC606CCA: start_thread (pthread_create.c:301) > ==20624== by 0x38EC2E0C2C: clone (clone.S:115) > > --- > > I am wondering whether 'something' did not work properly before due to > the missing assignment below? Very likely. > > --- > src/conf/domain_conf.c | 2 ++ > 1 file changed, 2 insertions(+) > > Index: libvirt-acl/src/conf/domain_conf.c > =================================================================== > --- libvirt-acl.orig/src/conf/domain_conf.c > +++ libvirt-acl/src/conf/domain_conf.c > @@ -1174,6 +1174,8 @@ virDomainChrSourceDefCopy(virDomainChrSo > break; > } > > + dest->type = src->type; > + ACK. No good writing into a union if you forget to also update the discriminator to say which branch of the union is active. The missing assignment definitely explains the memory leak. -- Eric Blake eblake@xxxxxxxxxx +1-919-301-3266 Libvirt virtualization library http://libvirt.org
Attachment:
signature.asc
Description: OpenPGP digital signature
-- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list