vhost/vhost_scsi: Fix coredump issue for non-scsi device.
Remove assert and add exit codes instead. That in non-debug mode, these could lead coredump. We don't want the vhost target be crashed after recieved invalid commands. fixes issue: #1575 Signed-off-by: yidong0635 <dongx.yi@intel.com> Change-Id: Ifef6d8f9c32150213bc2c80787e92d428d4c49c3 Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/3951 Community-CI: Mellanox Build Bot Reviewed-by: Changpeng Liu <changpeng.liu@intel.com> Reviewed-by: JinYu <jin.yu@intel.com> Reviewed-by: Tomasz Zawadzki <tomasz.zawadzki@intel.com> Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
This commit is contained in:
parent
83d830e745
commit
b2c86b35db
@ -993,7 +993,11 @@ spdk_vhost_scsi_dev_add_tgt(struct spdk_vhost_dev *vdev, int scsi_tgt_num,
|
||||
const char *bdev_names_list[1];
|
||||
|
||||
svdev = to_scsi_dev(vdev);
|
||||
assert(svdev != NULL);
|
||||
if (!svdev) {
|
||||
SPDK_ERRLOG("Before adding a SCSI target, there should be a SCSI device.");
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
if (scsi_tgt_num < 0) {
|
||||
for (scsi_tgt_num = 0; scsi_tgt_num < SPDK_VHOST_SCSI_CTRLR_MAX_DEVS; scsi_tgt_num++) {
|
||||
if (svdev->scsi_dev_state[scsi_tgt_num].dev == NULL) {
|
||||
@ -1118,7 +1122,11 @@ spdk_vhost_scsi_dev_remove_tgt(struct spdk_vhost_dev *vdev, unsigned scsi_tgt_nu
|
||||
}
|
||||
|
||||
svdev = to_scsi_dev(vdev);
|
||||
assert(svdev != NULL);
|
||||
if (!svdev) {
|
||||
SPDK_ERRLOG("An invalid SCSI device that removing from a SCSI target.");
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
scsi_dev_state = &svdev->scsi_dev_state[scsi_tgt_num];
|
||||
|
||||
if (scsi_dev_state->status != VHOST_SCSI_DEV_PRESENT) {
|
||||
|
Loading…
x
Reference in New Issue
Block a user