hw/nvme: report error for oversized 'serial' parameter
The 'serial' accepted by the NVME device is at most 20 characters long. An over-sized user supplied value should be reported rather than silently truncated. Signed-off-by: Daniel P. Berrangé <berrange@redhat.com> Signed-off-by: Klaus Jensen <k.jensen@samsung.com>
Daniel P. Berrangé committed
Mar 6, 2026 at 16:57 UTC
99f24284978404b0ee68062feef6806319e26d70
1 file changed
+5
hw/nvme/ctrl.c
+5
@@ -8602,6 +8602,11 @@ static bool nvme_check_params(NvmeCtrl *n, Error **errp)
8602
error_setg(errp, "serial property not set");
8603
return false;
8604
}
8605
+ if (strlen(params->serial) > NVME_ID_CTRL_SN_MAX_LEN) {
8606
+ error_setg(errp, "'serial' parameter '%s' can be at most '%d' characters",
8607
+ params->serial, NVME_ID_CTRL_SN_MAX_LEN);
8608
+ return false;
8609
+ }
8610
8611
if (params->mqes < 1) {
8612
error_setg(errp, "mqes property cannot be less than 1");