On Tue, Dec 04, 2012 at 05:43:06PM +0400, Dmitry Guryanov wrote: > We always have to close opened dir and free 'path'. > > Signed-off-by: Dmitry Guryanov <dguryanov@xxxxxxxxxxxxx> > --- > src/parallels/parallels_storage.c | 20 ++++++++++++-------- > 1 files changed, 12 insertions(+), 8 deletions(-) > > diff --git a/src/parallels/parallels_storage.c b/src/parallels/parallels_storage.c > index 148d870..0d59cce 100644 > --- a/src/parallels/parallels_storage.c > +++ b/src/parallels/parallels_storage.c > @@ -86,13 +86,14 @@ parallelsFindVolumes(virStoragePoolObjPtr pool) > { > DIR *dir; > struct dirent *ent; > - char *path; > + char *path = NULL; > + int ret = -1; > > if (!(dir = opendir(pool->def->target.path))) { > virReportSystemError(errno, > _("cannot open path '%s'"), > pool->def->target.path); > - goto cleanup; > + return -1; > } > > while ((ent = readdir(dir)) != NULL) { > @@ -100,18 +101,21 @@ parallelsFindVolumes(virStoragePoolObjPtr pool) > continue; > > if (!(path = virFileBuildPath(pool->def->target.path, > - ent->d_name, NULL))) > - goto no_memory; > + ent->d_name, NULL))) { > + virReportOOMError(); > + goto cleanup; > + } > if (!parallelsStorageVolumeDefine(pool, NULL, path, false)) > goto cleanup; > + > VIR_FREE(path); > } > > - return 0; > -no_memory: > - virReportOOMError(); > + ret = 0; > cleanup: > - return -1; > + VIR_FREE(path); > + closedir(dir); > + return ret; > > } ACK, Daniel -- Daniel Veillard | Open Source and Standards, Red Hat veillard@xxxxxxxxxx | libxml Gnome XML XSLT toolkit http://xmlsoft.org/ http://veillard.com/ | virtualization library http://libvirt.org/ -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list