Commit 043e5edb authored by Daniel Verkamp's avatar Daniel Verkamp
Browse files

nvmf/rdma: check for rdma_get_devices() failure



rdma_get_devices() may return NULL on failure; we need to check for this
before dereferencing the returned pointer.

Fixes GitHub issue #360.

Change-Id: I9628e5865365d256f4b1887bf07ce8737b55d356
Signed-off-by: default avatarDaniel Verkamp <daniel.verkamp@intel.com>
Reviewed-on: https://review.gerrithub.io/418868


Tested-by: default avatarSPDK Automated Test System <sys_sgsw@intel.com>
Reviewed-by: default avatarJim Harris <james.r.harris@intel.com>
Reviewed-by: default avatarBen Walker <benjamin.walker@intel.com>
Reviewed-by: default avatarSeth Howell <seth.howell5141@gmail.com>
parent fbb481c2
Loading
Loading
Loading
Loading
+9 −0
Original line number Diff line number Diff line
@@ -1310,6 +1310,15 @@ spdk_nvmf_rdma_create(struct spdk_nvmf_tgt *tgt)
				sizeof(struct spdk_nvmf_rdma_mgmt_channel));

	contexts = rdma_get_devices(NULL);
	if (contexts == NULL) {
		SPDK_ERRLOG("rdma_get_devices() failed: %s (%d)\n", spdk_strerror(errno), errno);
		rdma_destroy_event_channel(rtransport->event_channel);
		spdk_mempool_free(rtransport->data_buf_pool);
		spdk_io_device_unregister(rtransport, NULL);
		free(rtransport);
		return NULL;
	}

	i = 0;
	rc = 0;
	while (contexts[i] != NULL) {