On Tue, Apr 30, 2019 at 05:54:49PM +0100, Peter Maydell wrote: > On Thu, 25 Apr 2019 at 14:21, Cornelia Huck <coh...@redhat.com> wrote: [...] > > - SCSIDevice *sd = (SCSIDevice *) object_dynamic_cast(OBJECT(dev_st), > > - > > TYPE_SCSI_DEVICE); > > - > > - if (sd) { > > + switch (devtype) { > > + case CCW_DEVTYPE_SCSI: > > + sd = (SCSIDevice *) object_dynamic_cast(OBJECT(dev_st), > > + > > TYPE_SCSI_DEVICE); > > Coverity doesn't like the use of object_dynamic_cast() without a > check that the return value isn't NULL before we dereference > it a few lines further down. > > I think that if we know this cast must always succeed, we > could instead just write > SCSIDevice *sd = SCSI_DEVICE(dev_st); > > On the other hand if the cast might not succeed because dev_st > isn't necessarily of the right type, then we should check it > for NULL and handle that appropriately.
s390_get_ccw_device() will set devtype=CCW_DEVTYPE_SCSI only if dev_st is TYPE_SCSI_DEVICE, so the cast must always succeed and we should use SCSI_DEVICE(dev_st) here. -- Eduardo