Page MenuHomeFreeBSD

D6516.id16757.diff
No OneTemporary

D6516.id16757.diff

Index: sys/cam/scsi/scsi_xpt.c
===================================================================
--- sys/cam/scsi/scsi_xpt.c
+++ sys/cam/scsi/scsi_xpt.c
@@ -1559,13 +1559,22 @@
(u_int8_t *)malloc((serial_buf->length + 1),
M_CAMXPT, M_NOWAIT);
if (path->device->serial_num != NULL) {
+ int start, slen;
+
+ start = strspn(serial_buf->serial_num, " ");
+ slen = serial_buf->length - start;
+ if (slen <= 0) {
+ /*
+ * SPC5r05 says that an all-space serial
+ * number means no product serial number
+ * is available
+ */
+ slen = 0;
+ }
memcpy(path->device->serial_num,
- serial_buf->serial_num,
- serial_buf->length);
- path->device->serial_num_len =
- serial_buf->length;
- path->device->serial_num[serial_buf->length]
- = '\0';
+ &serial_buf->serial_num[start], slen);
+ path->device->serial_num_len = slen;
+ path->device->serial_num[slen] = '\0';
}
} else if (cam_periph_error(done_ccb, 0,
SF_RETRY_UA|SF_NO_PRINT,

File Metadata

Mime Type
text/plain
Expires
Wed, Apr 29, 8:23 PM (14 h, 9 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
32389316
Default Alt Text
D6516.id16757.diff (1 KB)

Event Timeline