On Tue, Nov 27, 2018 at 01:45:14PM +0000, Alexey Dokuchaev wrote:
> On Thu, Apr 04, 2013 at 11:19:52PM +0000, Steven Hartland wrote:
> > New Revision: 249115
> > URL: http://svnweb.freebsd.org/changeset/base/249115
> > 
> > Log:
> >   Adds security options to camcontrol this includes the ability to secure
> >   erase disks such as SSD's
> >   
> >   Adds the ability to run ATA commands via the SCSI ATA Pass-Through(16)
> >   com[m]and
> > 
> > Modified: head/sbin/camcontrol/camcontrol.c
> >  
> > [...]
> > +static int
> > +ata_do_identify(struct cam_device *device, int retry_count, int timeout,
> > +           union ccb *ccb, struct ata_params** ident_bufp)
> > +{
> > [...]
> > +
> > +   error = ata_do_28bit_cmd(device,
> > +                            ccb,
> > +                            /*retries*/retry_count,
> > +                            /*flags*/CAM_DIR_IN,
> > +                            /*protocol*/AP_PROTO_PIO_IN,
> > +                            /*tag_action*/MSG_SIMPLE_Q_TAG,
> > +                            /*command*/command,
> > +                            /*features*/0,
> > +                            /*lba*/0,
> > +                            /*sector_count*/(u_int8_t)sizeof(struct 
> > ata_params),
> 
> This looks strange: sizeof(struct ata_params) is 512, but it is too wide
> for u_int8_t, so it would be truncated to zero.  Should it be 1 (one) here
> instead for ATA_ATA_IDENTIFY command, since it normally returns some data
> which typically fits one sector (>=512 bytes)?

Ping.

./danfe

> > +                            /*data_ptr*/(u_int8_t *)ptr,
> > +                            /*dxfer_len*/sizeof(struct ata_params),
> > +                            /*timeout*/timeout ? timeout : 30 * 1000,
> > +                            /*quiet*/1);
> >  
> > [...]
> > +           error = ata_do_28bit_cmd(device,
> > +                                    ccb,
> > +                                    /*retries*/retry_count,
> > +                                    /*flags*/CAM_DIR_IN,
> > +                                    /*protocol*/AP_PROTO_PIO_IN,
> > +                                    /*tag_action*/MSG_SIMPLE_Q_TAG,
> > +                                    /*command*/retry_command,
> > +                                    /*features*/0,
> > +                                    /*lba*/0,
> > +                                    /*sector_count*/(u_int8_t)
> > +                                        sizeof(struct ata_params),
> 
> Same here.
> 
> > +                                    /*data_ptr*/(u_int8_t *)ptr,
> > +                                    /*dxfer_len*/sizeof(struct ata_params),
> > +                                    /*timeout*/timeout ? timeout : 30 * 
> > 1000,
> > +                                    /*quiet*/0);
_______________________________________________
[email protected] mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-head
To unsubscribe, send any mail to "[email protected]"

Reply via email to