Author: ken
Date: Wed May 25 14:30:33 2016
New Revision: 300681
URL: https://svnweb.freebsd.org/changeset/base/300681

Log:
  MFC r300224:
  
    ------------------------------------------------------------------------
    r300224 | ken | 2016-05-19 13:13:43 -0600 (Thu, 19 May 2016) | 12 lines
  
    Adjust a couple of error cases in camdd(8).
  
    usr.sbin/camdd/camdd.c:
        In camdd_probe_file(), fix an error case after fstat where
        we were bailing out and leaving two lines of cleanup code
        unexecuted.  Instead, just goto bailout_error.
  
        In camdd_probe_pass(), fail if the sector size is 0.
    ------------------------------------------------------------------------
  
  Sponsored by: Spectra Logic

Modified:
  stable/10/usr.sbin/camdd/camdd.c
Directory Properties:
  stable/10/   (props changed)

Modified: stable/10/usr.sbin/camdd/camdd.c
==============================================================================
--- stable/10/usr.sbin/camdd/camdd.c    Wed May 25 14:08:21 2016        
(r300680)
+++ stable/10/usr.sbin/camdd/camdd.c    Wed May 25 14:30:33 2016        
(r300681)
@@ -1079,9 +1079,7 @@ camdd_probe_file(int fd, struct camdd_io
                retval = fstat(fd, &file_dev->sb);
                if (retval != 0) {
                        warn("Cannot stat %s", dev->device_name);
-                       goto bailout;
-                       camdd_free_dev(dev);
-                       dev = NULL;
+                       goto bailout_error;
                }
                if (S_ISREG(file_dev->sb.st_mode)) {
                        file_dev->file_type = CAMDD_FILE_REG;
@@ -1383,6 +1381,11 @@ camdd_probe_pass(struct cam_device *cam_
        block_len = scsi_4btoul(rcaplong.length);
 
 rcap_done:
+       if (block_len == 0) {
+               warnx("Sector size for %s%u is 0, cannot continue",
+                   cam_dev->device_name, cam_dev->dev_unit_num);
+               goto bailout_error;
+       }
 
        bzero(&(&ccb->ccb_h)[1],
              sizeof(struct ccb_scsiio) - sizeof(struct ccb_hdr));
_______________________________________________
svn-src-all@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"

Reply via email to