diff options
| author | Maurizio Lombardi <[email protected]> | 2023-01-27 15:42:37 +0000 |
|---|---|---|
| committer | Christoph Hellwig <[email protected]> | 2023-02-01 13:18:46 +0000 |
| commit | fd62678ab55cb01e11a404d302cdade222bf4022 (patch) | |
| tree | c20351bc08526ced74526ad304c4b54546e70bad /net/ipv6/tcp_ipv6.c | |
| parent | nvme-fc: fix a missing queue put in nvmet_fc_ls_create_association (diff) | |
| download | kernel-fd62678ab55cb01e11a404d302cdade222bf4022.tar.gz kernel-fd62678ab55cb01e11a404d302cdade222bf4022.zip | |
nvme: clear the request_queue pointers on failure in nvme_alloc_admin_tag_set
If nvme_alloc_admin_tag_set() fails, the admin_q and fabrics_q pointers
are left with an invalid, non-NULL value. Other functions may then check
the pointers and dereference them, e.g. in
nvme_probe() -> out_disable: -> nvme_dev_remove_admin().
Fix the bug by setting admin_q and fabrics_q to NULL in case of error.
Also use the set variable to free the tag_set as ctrl->admin_tagset isn't
initialized yet.
Signed-off-by: Maurizio Lombardi <[email protected]>
Reviewed-by: Keith Busch <[email protected]>
Reviewed-by: Chaitanya Kulkarni <[email protected]>
Signed-off-by: Christoph Hellwig <[email protected]>
Diffstat (limited to 'net/ipv6/tcp_ipv6.c')
0 files changed, 0 insertions, 0 deletions
