]> git.proxmox.com Git - mirror_edk2.git/blobdiff - MdeModulePkg/Bus/Pci/NvmExpressDxe/NvmExpress.c
MdeModulePkg/NvmExpress: Fix bug of handling not null-terminated strings
[mirror_edk2.git] / MdeModulePkg / Bus / Pci / NvmExpressDxe / NvmExpress.c
index 54d637e7d03b13f74351a13eabb07171ea3e5501..49a73c4f9178041f480fb41fae51474b4aa49c1b 100644 (file)
@@ -74,6 +74,8 @@ EnumerateNvmeDevNamespace (
   UINT32                                Lbads;\r
   UINT32                                Flbas;\r
   UINT32                                LbaFmtIdx;\r
+  UINT8                                 Sn[21];\r
+  UINT8                                 Mn[41];\r
 \r
   NewDevicePathNode = NULL;\r
   DevicePath        = NULL;\r
@@ -265,7 +267,11 @@ EnumerateNvmeDevNamespace (
     //\r
     // Build controller name for Component Name (2) protocol.\r
     //\r
-    UnicodeSPrintAsciiFormat (Device->ModelName, sizeof (Device->ModelName), "%a-%a-%x", Private->ControllerData->Sn, Private->ControllerData->Mn, NamespaceData->Eui64);\r
+    CopyMem (Sn, Private->ControllerData->Sn, sizeof (Private->ControllerData->Sn));\r
+    Sn[20] = 0;\r
+    CopyMem (Mn, Private->ControllerData->Mn, sizeof (Private->ControllerData->Mn));\r
+    Mn[40] = 0;\r
+    UnicodeSPrintAsciiFormat (Device->ModelName, sizeof (Device->ModelName), "%a-%a-%x", Sn, Mn, NamespaceData->Eui64);\r
 \r
     AddUnicodeString2 (\r
       "eng",\r