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.

Reply via email to