diff --git a/scst/src/dev_handlers/scst_vdisk.c b/scst/src/dev_handlers/scst_vdisk.c index eaa3236a3..431d947b5 100644 --- a/scst/src/dev_handlers/scst_vdisk.c +++ b/scst/src/dev_handlers/scst_vdisk.c @@ -3857,7 +3857,8 @@ static int vdisk_usn_vpd(uint8_t *buf, struct scst_cmd *cmd, } else { read_lock(&vdisk_serial_rwlock); usn_len = strlen(virt_dev->usn); - WARN_ON_ONCE(usn_len > max_len); + if (WARN_ON_ONCE(usn_len > max_len)) + usn_len = max_len; memcpy(&buf[4], virt_dev->usn, usn_len); read_unlock(&vdisk_serial_rwlock); }