From: Xiubo Li <xiubli@redhat.com>
Date: Mon, 30 Aug 2021 13:03:41 +0800
Subject: [PATCH] rbd: fix use-after-free of addr

Signed-off-by: Xiubo Li <xiubli@redhat.com>

Origin: upstream, https://github.com/open-iscsi/tcmu-runner/commit/ec8d252494b0ddfcd684506ff88946e852fac58e
---
 rbd.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/rbd.c b/rbd.c
index 82afd9b..55950da 100644
--- a/rbd.c
+++ b/rbd.c
@@ -308,10 +308,10 @@ static void tcmu_rbd_rm_stale_entry_from_blacklist(struct tcmu_device *dev, char
 			       "\"blacklistop\": \"rm\","
 			       "\"addr\": \"%s\"}",
 			       addr);
-		free(addr);
 		if (ret < 0) {
 			tcmu_dev_warn(dev, "Could not allocate command. (Err %d)\n",
 				      ret);
+			free(addr);
 			return;
 		}
 		ret = rados_mon_command(state->cluster, (const char**)&cmd, 1, NULL, 0,
@@ -320,8 +320,10 @@ static void tcmu_rbd_rm_stale_entry_from_blacklist(struct tcmu_device *dev, char
 		if (ret < 0) {
 			tcmu_dev_err(dev, "Could not rm blacklist entry '%s'. (Err %d)\n",
 				     addr, ret);
+			free(addr);
 			return;
 		}
+		free(addr);
 	}
 }
 
