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 <wido@widodh.nl>
This commit is contained in:
Wido den Hollander 2016-01-06 10:25:48 +01:00 committed by John Ferlan
parent b22344f328
commit 10028a9d58

View File

@ -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;
}