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>
---
hw/nvme/ctrl.c | 5 +++++
1 file changed, 5 insertions(+)
diff --git a/hw/nvme/ctrl.c b/hw/nvme/ctrl.c
index cc4593cd42..e6b2e3b70a 100644
--- a/hw/nvme/ctrl.c
+++ b/hw/nvme/ctrl.c
@@ -8600,6 +8600,11 @@ static bool nvme_check_params(NvmeCtrl *n, Error **errp)
error_setg(errp, "serial property not set");
return false;
}
+ if (strlen(params->serial) > NVME_ID_CTRL_SN_MAX_LEN) {
+ error_setg(errp, "'serial' parameter '%s' can be at most '%d' characters",
+ params->serial, NVME_ID_CTRL_SN_MAX_LEN);
+ return false;
+ }
if (params->mqes < 1) {
error_setg(errp, "mqes property cannot be less than 1");
--
2.53.0