From: Wido den Hollander Date: Wed, 6 Jan 2016 09:25:48 +0000 (+0100) Subject: rbd: Only close RBD image if it has been opened X-Git-Tag: v1.3.1-rc1~91 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=10028a9d5843020ad58e6b6922246543a59a6d7e;p=thirdparty%2Flibvirt.git rbd: Only close RBD image if it has been opened It could be that we error out while the RBD image has not been opened yet. This would cause us to call rbd_close() on pointer which has not been initialized. Set it to NULL by default and only close if it is not NULL. Signed-off-by: Wido den Hollander --- diff --git a/src/storage/storage_backend_rbd.c b/src/storage/storage_backend_rbd.c index 80684eb55a..8e2d51bf94 100644 --- a/src/storage/storage_backend_rbd.c +++ b/src/storage/storage_backend_rbd.c @@ -281,13 +281,13 @@ static int volStorageBackendRBDRefreshVolInfo(virStorageVolDefPtr vol, { int ret = -1; int r = 0; - rbd_image_t image; + rbd_image_t image = NULL; r = rbd_open(ptr->ioctx, vol->name, &image, NULL); if (r < 0) { virReportSystemError(-r, _("failed to open the RBD image '%s'"), vol->name); - return ret; + goto cleanup; } rbd_image_info_t info; @@ -323,7 +323,8 @@ static int volStorageBackendRBDRefreshVolInfo(virStorageVolDefPtr vol, ret = 0; cleanup: - rbd_close(image); + if (image) + rbd_close(image); return ret; }