Blob Blame History Raw
From: Sagi Grimberg <sagi@grimberg.me>
Date: Wed, 9 Nov 2022 05:29:57 +0200
Subject: nvmet: fix a memory leak
Patch-mainline: v6.1-rc5
Git-commit: e65fdf530f55c5e387db14470a59a399faa29613
References: git-fixes

We need to also free the dhchap_ctrl_secret when releasing nvmet_host.
kmemleak complaint:
--
unreferenced object 0xffff99b1cbca5140 (size 64):
  comm "check", pid 4864, jiffies 4305092436 (age 2913.583s)
  hex dump (first 32 bytes):
    44 48 48 43 2d 31 3a 30 30 3a 65 36 2b 41 63 44  DHHC-1:00:e6+AcD
    39 76 47 4d 52 57 59 78 67 54 47 44 51 59 47 78  9vGMRWYxgTGDQYGx
  backtrace:
    [<00000000c07d369d>] kstrdup+0x2e/0x60
    [<000000001372171c>] 0xffffffffc0cceec6
    [<0000000010dbf50b>] 0xffffffffc0cc6783
    [<000000007465e93c>] configfs_write_iter+0xb1/0x120
    [<0000000039c23f62>] vfs_write+0x2be/0x3c0
    [<000000002da4351c>] ksys_write+0x5f/0xe0
    [<00000000d5011e32>] do_syscall_64+0x38/0x90
    [<00000000503870cf>] entry_SYSCALL_64_after_hwframe+0x63/0xcd

Fixes: db1312dd9548 ("nvmet: implement basic In-Band Authentication")
Signed-off-by: Sagi Grimberg <sagi@grimberg.me>
Reviewed-by: Chaitanya Kulkarni <kch@nvidia.com>
Signed-off-by: Christoph Hellwig <hch@lst.de>
Acked-by: Daniel Wagner <dwagner@suse.de>
---
 drivers/nvme/target/configfs.c |    2 ++
 1 file changed, 2 insertions(+)

--- a/drivers/nvme/target/configfs.c
+++ b/drivers/nvme/target/configfs.c
@@ -1815,6 +1815,8 @@ static void nvmet_host_release(struct co
 #ifdef CONFIG_NVME_TARGET_AUTH
 	if (host->dhchap_secret)
 		kfree(host->dhchap_secret);
+	if (host->dhchap_ctrl_secret)
+		kfree(host->dhchap_ctrl_secret);
 #endif
 	kfree(host);
 }