diff --git a/lib/bdev/lvol/vbdev_lvol.c b/lib/bdev/lvol/vbdev_lvol.c index 3fa256359..40d440bbf 100644 --- a/lib/bdev/lvol/vbdev_lvol.c +++ b/lib/bdev/lvol/vbdev_lvol.c @@ -485,6 +485,9 @@ vbdev_lvol_create(uuid_t uuid, size_t sz, req->u.lvol_handle.cb_arg = cb_arg; rc = spdk_lvol_create(lvs, sz, _vbdev_lvol_create_cb, req); + if (rc != 0) { + free(req); + } return rc; } diff --git a/lib/lvol/lvol.c b/lib/lvol/lvol.c index ac44edb93..72b38a881 100644 --- a/lib/lvol/lvol.c +++ b/lib/lvol/lvol.c @@ -170,6 +170,8 @@ _spdk_lvol_close_blob_cb(void *cb_arg, int lvolerrno) if (lvolerrno < 0) { SPDK_ERRLOG("Could not close blob on lvol\n"); + free(lvol->name); + free(lvol); return; } @@ -193,6 +195,8 @@ _spdk_lvol_delete_blob_cb(void *cb_arg, int lvolerrno) if (lvolerrno < 0) { SPDK_ERRLOG("Could not delete blob on lvol\n"); + free(lvol->name); + free(lvol); return; } SPDK_INFOLOG(SPDK_TRACE_LVOL, "Blob closed on lvol\n");