nvme-multipath: zero out ANA log buffer
When nvme_init_identify() fails the ANA log buffer is deallocated but _not_ set to NULL. This can cause double free oops when this controller is deleted without ever being reconnected. Signed-off-by: Hannes Reinecke <hare@suse.com> Signed-off-by: Christoph Hellwig <hch@lst.de>
This commit is contained in:
parent
9846ac0143
commit
c7055fd15f
|
@ -570,6 +570,7 @@ int nvme_mpath_init(struct nvme_ctrl *ctrl, struct nvme_id_ctrl *id)
|
||||||
return 0;
|
return 0;
|
||||||
out_free_ana_log_buf:
|
out_free_ana_log_buf:
|
||||||
kfree(ctrl->ana_log_buf);
|
kfree(ctrl->ana_log_buf);
|
||||||
|
ctrl->ana_log_buf = NULL;
|
||||||
out:
|
out:
|
||||||
return error;
|
return error;
|
||||||
}
|
}
|
||||||
|
@ -577,5 +578,6 @@ out:
|
||||||
void nvme_mpath_uninit(struct nvme_ctrl *ctrl)
|
void nvme_mpath_uninit(struct nvme_ctrl *ctrl)
|
||||||
{
|
{
|
||||||
kfree(ctrl->ana_log_buf);
|
kfree(ctrl->ana_log_buf);
|
||||||
|
ctrl->ana_log_buf = NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue