From f76ec3b4955bdb3e097c27172460163f62886857 Mon Sep 17 00:00:00 2001 From: Maciej Szwed Date: Thu, 21 Sep 2017 13:19:22 +0200 Subject: [PATCH] lvol: fix memory leaks Signed-off-by: Maciej Szwed Change-Id: Ife45dc8e27d767b9f09b67e7fae3b94837a14491 Reviewed-on: https://review.gerrithub.io/379458 Reviewed-by: Tomasz Zawadzki Reviewed-by: Jim Harris Tested-by: SPDK Automated Test System --- lib/bdev/lvol/vbdev_lvol.c | 3 +++ lib/lvol/lvol.c | 4 ++++ 2 files changed, 7 insertions(+) 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");