Skip to content

fabrics: avoid connect segfault for invalid param#3267

Open
martin-gpy wants to merge 1 commit intolinux-nvme:masterfrom
martin-gpy:connect_segfault
Open

fabrics: avoid connect segfault for invalid param#3267
martin-gpy wants to merge 1 commit intolinux-nvme:masterfrom
martin-gpy:connect_segfault

Conversation

@martin-gpy
Copy link
Copy Markdown
Contributor

The connect command segfaults if one passes an invalid param to it. For e.g.

nvme connect disconnect
required argument [--nqn | -n] not specified
Segmentation fault (core dumped)

Running gdb on the core revealed the segfault was due to dereferencing the fctx NULL pointer:

Core was generated by `nvme connect disconnect'.
Program terminated with signal SIGSEGV, Segmentation fault. libnvmf_context_free (fctx=0x0) at ../libnvme/src/nvme/fabrics.c:222
222 free(fctx->tls_key);
(gdb) where
libnvmf_context_free (fctx=0x0) at ../libnvme/src/nvme/fabrics.c:222
cleanup_nvmf_context (fctx=0x7ffd6f16ddf8) at ../util/cleanup.h:58
fabrics_connect (desc=, argc=, argv=0x7ffd6f16ee10) at ../fabrics.c:595
handle_plugin (argc=argc@entry=2, argv=argv@entry=0x7ffd6f16ee10, plugin=0x558480 ) at ../plugin.c:190
main (argc=3, argv=0x7ffd6f16ee08) at ../nvme.c:11313

Fix the same.

Fixes: 27af156 ("fabrics: allow tls key to be a pin")

The connect command segfaults if one passes an invalid param to it.
For e.g.

nvme connect disconnect
required argument [--nqn | -n] not specified
Segmentation fault (core dumped)

Running gdb on the core revealed the segfault was due to dereferencing
the fctx NULL pointer:

Core was generated by `nvme connect disconnect'.
Program terminated with signal SIGSEGV, Segmentation fault.
libnvmf_context_free (fctx=0x0) at ../libnvme/src/nvme/fabrics.c:222
222             free(fctx->tls_key);
(gdb) where
libnvmf_context_free (fctx=0x0) at ../libnvme/src/nvme/fabrics.c:222
cleanup_nvmf_context (fctx=0x7ffd6f16ddf8) at ../util/cleanup.h:58
fabrics_connect (desc=<optimized out>, argc=<optimized out>, argv=0x7ffd6f16ee10) at ../fabrics.c:595
handle_plugin (argc=argc@entry=2, argv=argv@entry=0x7ffd6f16ee10, plugin=0x558480 <builtin>) at ../plugin.c:190
main (argc=3, argv=0x7ffd6f16ee08) at ../nvme.c:11313

Fix the same.

Fixes: 27af156 ("fabrics: allow tls key to be a pin")

Signed-off-by: Martin George <marting@netapp.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant