Skip to content

Commit 0a2eb77

Browse files
martin-gpyigaw
authored andcommitted
fabrics: avoid connect segfault for invalid param
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 <[email protected]>
1 parent 9a4923b commit 0a2eb77

1 file changed

Lines changed: 3 additions & 0 deletions

File tree

libnvme/src/nvme/fabrics.c

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -235,6 +235,9 @@ __public int libnvmf_context_create(struct libnvme_global_ctx *ctx,
235235

236236
__public void libnvmf_context_free(struct libnvmf_context *fctx)
237237
{
238+
if (!fctx)
239+
return;
240+
238241
free(fctx->tls_key);
239242
free(fctx);
240243
}

0 commit comments

Comments
 (0)