[libvirt] [PATCH] Create temporary dir for socket

Guido Günther agx at sigxcpu.org
Tue Oct 30 18:18:05 UTC 2012


On Tue, Oct 30, 2012 at 07:08:36AM -0600, Eric Blake wrote:
> On 10/29/2012 06:05 AM, Guido Günther wrote:
> > to avoid ENAMETOOLONG:
> > 
> > https://buildd.debian.org/status/fetch.php?pkg=libvirt&arch=amd64&ver=1.0.0~rc1-1&stamp=1351453521
> > ---
> >  tests/qemumonitortestutils.c |   22 ++++++++++++++++++++--
> >  1 file changed, 20 insertions(+), 2 deletions(-)
> 
> ACK once you fix this bug:
> 
> > 
> > diff --git a/tests/qemumonitortestutils.c b/tests/qemumonitortestutils.c
> > index 7133c99..1369cb7 100644
> > --- a/tests/qemumonitortestutils.c
> > +++ b/tests/qemumonitortestutils.c
> > @@ -424,9 +424,23 @@ static qemuMonitorCallbacks qemuCallbacks = {
> >  qemuMonitorTestPtr qemuMonitorTestNew(bool json, virCapsPtr caps)
> >  {
> >      qemuMonitorTestPtr test;
> 
> Uninitialized...
> 
> > -    const char *path = abs_builddir "/qemumonitorjsontest.sock";
> >      virDomainChrSourceDef src;
> >  
> > +    char *tmpdir = NULL, *path = NULL;
> > +    char template[] = "/tmp/libvirt_XXXXXX";
> > +
> > +    tmpdir = mkdtemp(template);
> > +    if (tmpdir == NULL) {
> > +        virReportSystemError(errno, "%s",
> > +                             "Failed to create temporary directory");
> > +        goto error;
> 
> Still uninitialized...
> 
> > +    }
> > +
> > +    if (virAsprintf(&path, "%s/qemumonitorjsontest.sock", tmpdir) < 0) {
> > +        virReportOOMError();
> > +        goto error;
> > +    }
> > +
> >      memset(&src, 0, sizeof(src));
> >      src.type = VIR_DOMAIN_CHR_TYPE_UNIX;
> >      src.data.nix.path = (char *)path;
> > @@ -494,11 +508,15 @@ qemuMonitorTestPtr qemuMonitorTestNew(bool json, virCapsPtr caps)
> >      test->running = true;
> >      virMutexUnlock(&test->lock);
> >  
> > +cleanup:
> > +    if (tmpdir)
> > +        rmdir(tmpdir);
> > +    VIR_FREE(path);
> >      return test;
> >  
> >  error:
> >      qemuMonitorTestFree(test);
> 
> ...and freed.  Crash-tastic.
> 
> Also, it might be worth adding a VIR_WARN if the rmdir() fails.

Fixed and pushed, also added the VIR_WARN.
Thanks,
 -- Guido

> 
> -- 
> Eric Blake   eblake at redhat.com    +1-919-301-3266
> Libvirt virtualization library http://libvirt.org
> 





More information about the libvir-list mailing list