DragonFlyBSD Kernel Audit
DF-0972 / fix.diff
← back to finding ↓ download raw
diff --git a/sys/bus/cam/cam_xpt.c b/sys/bus/cam/cam_xpt.c
--- a/sys/bus/cam/cam_xpt.c
+++ b/sys/bus/cam/cam_xpt.c
@@ -6341,7 +6341,7 @@
 				       M_CAMXPT, M_INTWAIT);
 			bcopy(serial_buf->serial_num,
 			      path->device->serial_num,
-			      serial_buf->length);
+			      min(serial_buf->length, SVPD_SERIAL_NUM_SIZE));
 			path->device->serial_num_len = serial_buf->length;
 			path->device->serial_num[serial_buf->length] = '\0';
 		} else if (cam_periph_error(done_ccb, 0,