nvme-fabrics: get a reference when reusing a nvme_host structure

Without this we'll get a use after free after connecting two controller
using the same hostnqn and then disconnecting one of them.

Signed-off-by: Christoph Hellwig <[email protected]>
Reviewed-by: Jay Freyensee <[email protected]>
Signed-off-by: Sagi Grimberg <[email protected]>
This commit is contained in:
Christoph Hellwig 2016-08-18 11:16:35 -07:00 • committed by Sagi Grimberg
commit 98096d8a78

View file

@ -47,8 +47,10 @@ static struct nvmf_host *nvmf_host_add(const char *hostnqn)
mutex_lock(&nvmf_hosts_mutex);
host = __nvmf_host_find(hostnqn);
if (host)
if (host) {
kref_get(&host->ref);
goto out_unlock;
}
host = kmalloc(sizeof(*host), GFP_KERNEL);
if (!host)