The src of pool is not changed in each loop, so don't VIR_FREE(src) and get when next iteration. Signed-off-by: Yi Li <yili@xxxxxxxxxxx> --- src/storage/storage_backend_fs.c | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/src/storage/storage_backend_fs.c b/src/storage/storage_backend_fs.c index 02b8248..27c1098 100644 --- a/src/storage/storage_backend_fs.c +++ b/src/storage/storage_backend_fs.c @@ -258,10 +258,10 @@ virStorageBackendFileSystemIsMounted(virStoragePoolObjPtr pool) goto cleanup; } - while ((getmntent_r(mtab, &ent, buf, sizeof(buf))) != NULL) { - if (!(src = virStorageBackendFileSystemGetPoolSource(pool))) - goto cleanup; + if ((src = virStorageBackendFileSystemGetPoolSource(pool)) == NULL) + goto cleanup; + while ((getmntent_r(mtab, &ent, buf, sizeof(buf))) != NULL) { /* compare both mount destinations and sources to be sure the mounted * FS pool is really the one we're looking for */ @@ -273,8 +273,6 @@ virStorageBackendFileSystemIsMounted(virStoragePoolObjPtr pool) ret = 1; goto cleanup; } - - VIR_FREE(src); } ret = 0; -- 2.7.5 -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list