On 11/22/2012 05:48 PM, Daniel P. Berrange wrote: > From: "Daniel P. Berrange" <berra...@redhat.com> > > The virLXCControllerClientCloseHook method was mistakenly > assuming that the private data associated with the network > client was the virLXCControllerPtr. In fact it was just a > dummy int, so we were derefencing a bogus struct. The > frequent result of this was that we would never quit, because > we tried to arm a non-existant timer. > > Fix the code by removing the dummy private data and just > using the virLXCControllerPtr instance as private data > > Signed-off-by: Daniel P. Berrange <berra...@redhat.com> > --- > src/lxc/lxc_controller.c | 13 ++++--------- > 1 file changed, 4 insertions(+), 9 deletions(-) > > diff --git a/src/lxc/lxc_controller.c b/src/lxc/lxc_controller.c > index 6fffd68..a9d2d40 100644 > --- a/src/lxc/lxc_controller.c > +++ b/src/lxc/lxc_controller.c > @@ -578,19 +578,14 @@ static void > virLXCControllerClientCloseHook(virNetServerClientPtr client) > > static void virLXCControllerClientPrivateFree(void *data) > { > - VIR_FREE(data); > + virLXCControllerPtr ctrl = data; > + VIR_DEBUG("Got private data free %p", ctrl); > } > > static void *virLXCControllerClientPrivateNew(virNetServerClientPtr client, > void *opaque) > { > virLXCControllerPtr ctrl = opaque; > - int *dummy; > - > - if (VIR_ALLOC(dummy) < 0) { > - virReportOOMError(); > - return NULL; > - } > > virNetServerClientSetCloseHook(client, virLXCControllerClientCloseHook); > VIR_DEBUG("Got new client %p", client); > @@ -600,7 +595,7 @@ static void > *virLXCControllerClientPrivateNew(virNetServerClientPtr client, > virLXCControllerEventSendInit(ctrl, ctrl->initpid); > ctrl->firstClient = false; > > - return dummy; > + return ctrl; > } > > > @@ -1327,7 +1322,7 @@ virLXCControllerEventSendExit(virLXCControllerPtr ctrl, > { > virLXCProtocolExitEventMsg msg; > > - VIR_DEBUG("Exit status %d", exitstatus); > + VIR_DEBUG("Exit status %d (client=%p)", exitstatus, ctrl->client); > memset(&msg, 0, sizeof(msg)); > switch (exitstatus) { > case 0: >
ACK, Martin -- libvir-list mailing list libvir-list@redhat.com https://www.redhat.com/mailman/listinfo/libvir-list