Commit 14f6d724 authored by Changpeng Liu's avatar Changpeng Liu Committed by Ben Walker
Browse files

scsi: add additional check for initiator port



Vhost-scsi target will not set task's initiator port parameter,
so reservation commands sent from Guest will cause segment fault.

Change-Id: Ifc175effded5371eca08d5bfe7e4aa977dd4b1c6
Signed-off-by: default avatarChangpeng Liu <changpeng.liu@intel.com>
Reviewed-on: https://review.gerrithub.io/c/spdk/spdk/+/457550


Tested-by: default avatarSPDK CI Jenkins <sys_sgci@intel.com>
Reviewed-by: default avatarBen Walker <benjamin.walker@intel.com>
Reviewed-by: default avatarDarek Stojaczyk <dariusz.stojaczyk@intel.com>
parent 8cdb3d33
Loading
Loading
Loading
Loading
+11 −7
Original line number Diff line number Diff line
@@ -99,14 +99,18 @@ spdk_scsi_pr_register_registrant(struct spdk_scsi_lun *lun,

	/* New I_T nexus */
	reg->initiator_port = initiator_port;
	if (initiator_port) {
		snprintf(reg->initiator_port_name, sizeof(reg->initiator_port_name), "%s",
			 initiator_port->name);
		reg->transport_id_len = initiator_port->transport_id_len;
		memcpy(reg->transport_id, initiator_port->transport_id, reg->transport_id_len);
	}
	reg->target_port = target_port;
	if (target_port) {
		snprintf(reg->target_port_name, sizeof(reg->target_port_name), "%s",
			 target_port->name);
		reg->relative_target_port_id = target_port->index;
	}
	reg->rkey = sa_rkey;
	TAILQ_INSERT_TAIL(&lun->reg_head, reg, link);
	lun->pr_generation++;