forked from Minki/linux
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 <hch@lst.de> Reviewed-by: Jay Freyensee <james_p_freyensee@linux.intel.com> Signed-off-by: Sagi Grimberg <sagi@grimberg.me>
This commit is contained in:
parent
7a665d2f60
commit
98096d8a78
@ -47,8 +47,10 @@ static struct nvmf_host *nvmf_host_add(const char *hostnqn)
|
|||||||
|
|
||||||
mutex_lock(&nvmf_hosts_mutex);
|
mutex_lock(&nvmf_hosts_mutex);
|
||||||
host = __nvmf_host_find(hostnqn);
|
host = __nvmf_host_find(hostnqn);
|
||||||
if (host)
|
if (host) {
|
||||||
|
kref_get(&host->ref);
|
||||||
goto out_unlock;
|
goto out_unlock;
|
||||||
|
}
|
||||||
|
|
||||||
host = kmalloc(sizeof(*host), GFP_KERNEL);
|
host = kmalloc(sizeof(*host), GFP_KERNEL);
|
||||||
if (!host)
|
if (!host)
|
||||||
|
Loading…
Reference in New Issue
Block a user