Filter meaningless characters for reading NVMe model name

Limit to only accept digits/letters/punctuation characters
for NVMe model name to avoid reading garbage data from VPD
possibly (it may cause set model name D-bus property failed)

Signed-off-by: George Hung <george.hung@quantatw.com>
Change-Id: Ib109fa48e64fc0bc015d4ae5f56246c78c4b8fee
diff --git a/nvme_manager.cpp b/nvme_manager.cpp
index e782864..95fb985 100644
--- a/nvme_manager.cpp
+++ b/nvme_manager.cpp
@@ -300,7 +300,9 @@
     for (int offset = SERIALNUMBER_START_INDEX; offset < SERIALNUMBER_END_INDEX;
          offset++)
     {
-        if (rsp_data_command_8[offset] != ' ')
+        // Only accept digits/letters/punctuation characters.
+        if (rsp_data_command_8[offset] >= '!' &&
+            rsp_data_command_8[offset] <= '~')
             nvmeData.serialNumber +=
                 static_cast<char>(rsp_data_command_8[offset]);
     }
@@ -330,7 +332,8 @@
 
         for (int i = 0; i < rx_len; i++)
         {
-            if (rsp_data_vpd[i] != ' ')
+            // Only accept digits/letters/punctuation characters.
+            if ((rsp_data_vpd[i] >= '!' && rsp_data_vpd[i] <= '~'))
                 nvmeData.modelNumber += static_cast<char>(rsp_data_vpd[i]);
         }