On Tue, 30 Apr 2019 17:30:09 -0300 Eduardo Habkost <ehabk...@redhat.com> wrote:
> 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. > Yes; sending a patch.