vpd-tool: Bug fix for displaying non printable value

Hexa decimal string getting truncated to a byte,
This fix addresses the issue.
Test:
/tmp/vpd-tool_combin -r -H -O "/sys/bus/i2c/drivers/at24/8-0050/eeprom" -R VCFG -K Z1
{
    "/sys/bus/i2c/drivers/at24/8-0050/eeprom": {
        "Z1": "0x0894ef83188c"
    }
}
/tmp/vpd-tool_combin -r -H -O "/sys/bus/i2c/drivers/at24/8-0050/eeprom" -R VCFG -K Z0
{
    "/sys/bus/i2c/drivers/at24/8-0050/eeprom": {
        "Z0": "0x0894ef83188b"
    }
}
/tmp/vpd-tool_combin -r -H -O "/sys/bus/i2c/drivers/at24/8-0050/eeprom" -R VCFG -K HW
The given keyword HW or record VCFG or both are not present in the given FRU path /sys/bus/i2c/drivers/at24/8-0050/eeprom
 /tmp/vpd-tool_combin -r -H -O "/sys/bus/i2c/drivers/at24/8-0050/eeprom" -R VINI -K HW
{
    "/sys/bus/i2c/drivers/at24/8-0050/eeprom": {
        "HW": "0x8001"
    }
}
~# /tmp/vpd-tool_combin -r -H -O "/sys/bus/i2c/drivers/at24/8-0050/eeprom" -R VINI -K B3
{
    "/sys/bus/i2c/drivers/at24/8-0050/eeprom": {
        "B3": ""
    }
}
:~# /tmp/vpd-tool_combin -r -H -O "/sys/bus/i2c/drivers/at24/8-0050/eeprom" -R VINI -K B4
{
    "/sys/bus/i2c/drivers/at24/8-0050/eeprom": {
        "B4": ""
    }
}
~# /tmp/vpd-tool_combin -r -H -O "/sys/bus/i2c/drivers/at24/8-0050/eeprom" -R VINI -K B7
{
    "/sys/bus/i2c/drivers/at24/8-0050/eeprom": {
        "B7": ""
    }
}
~# /tmp/vpd-tool_combin -r -H -O "/sys/bus/i2c/drivers/at24/8-0050/eeprom" -R PSPD -K "#D"
{
    "/sys/bus/i2c/drivers/at24/8-0050/eeprom": {
    "#D": "0x00100c0c000 .... 000000000000000000" }
}
10240 Bytes printed.

~# /tmp/vpd-tool_combin -r -H -O "/sys/bus/i2c/drivers/at24/8-0050/eeprom" -R VINI -K SN
{
    "/sys/bus/i2c/drivers/at24/8-0050/eeprom": {
        "SN": "YF30UF31C007"
    }
}
~# /tmp/vpd-tool_combin -r -O /system/chassis/motherboard -R VINI -K SN
{
    "/system/chassis/motherboard": {
        "SN": "YF30UF31C007"
    }
}
~# /tmp/vpd-tool_combin -r -H -O "/sys/bus/i2c/drivers/at24/8-0050/eeprom" -R VINI -K FN
{
    "/sys/bus/i2c/drivers/at24/8-0050/eeprom": {
        "FN": "F230306"
    }
}
~# /tmp/vpd-tool_combin -r -H -O "/sys/bus/i2c/drivers/at24/8-0050/eeprom" -R VINI -K PN
{
    "/sys/bus/i2c/drivers/at24/8-0050/eeprom": {
        "PN": "03KP340"
    }
}
~# /tmp/vpd-tool_combin -r -O /system/chassis/motherboard -R VINI -K FN
{
    "/system/chassis/motherboard": {
        "FN": "F230306"
    }
}
~# /tmp/vpd-tool_combin -r -O /system/chassis/motherboard -R VINI -K PN
{
    "/system/chassis/motherboard": {
        "PN": "03KP340"
    }
}
~# /tmp/vpd-tool_combin -r -O /system/chassis/motherboard -R VINI -K B3
{
    "/system/chassis/motherboard": {
        "B3": ""
    }
}
~# /tmp/vpd-tool_combin -r -O /system/chassis/motherboard -R VINI -K B4
{
    "/system/chassis/motherboard": {
        "B4": ""
    }
}
~# /tmp/vpd-tool_combin -r -O /system/chassis/motherboard -R VINI -K B7
{
    "/system/chassis/motherboard": {
        "B7": ""
    }
}

HexDump results for comparison:

00000820  47 56 5a 02 30 31 5a 30  06 08 94 ef 83 18 8b 5a  |GVZ.01Z0.......Z|
00000830  31 06 08 94 ef 83 18 8c  50 46 0b 00 00 00 00 00  |1.......PF......
00000160  45 04 30 30 30 31 43 54  04 40 18 00 0e 48 57 02  |E.0001CT.@...HW.|
00000170  80 01 42 33 06 00 00 00  00 00 00 42 34 01 00 42  |..B3.......B4..B|
00000180  37 0c 00 00 00 00 00 00  00 00 00 00 00 00 50 46  |7.............PF|
000008a0  30 32 56 4d 04 00 00 00  00 23 44 00 28 00 10 0c  |02VM.....#D.(...|
000008b0  0c 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
000008c0  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
*
00000920  00 00 00 00 00 00 00 00  00 00 00 b9 cc 00 00 00  |................|
00000930  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
*
00000970  00 00 00 80 29 b0 00 15  60 04 50 00 00 df 03 ff  |....)...`.P.....|
00000980  f3 0f 00 00 01 00 00 00  00 03 00 00 00 00 00 00  |................|
00000990  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
*
000009b0  00 00 00 00 00 00 00 00  00 00 00 00 00 81 00 00  |................|

Signed-off-by: Giridhari Krishna <giridharikrishnan@gmail.com>
Change-Id: If380ca3483fb4fc88ca1dd159b2fa75703c8fe1c
diff --git a/ibm_vpd_utils.cpp b/ibm_vpd_utils.cpp
index 990ce21..341fb02 100644
--- a/ibm_vpd_utils.cpp
+++ b/ibm_vpd_utils.cpp
@@ -681,15 +681,15 @@
     std::string hexString;
     std::visit(
         [&hexString](auto&& kw) {
+            std::stringstream ss;
+            std::string hexRep = "0x";
+            ss << hexRep;
             for (auto& kwVal : kw)
             {
-                std::stringstream ss;
-                std::string hexRep = "0x";
-                ss << hexRep;
                 ss << std::setfill('0') << std::setw(2) << std::hex
                    << static_cast<int>(kwVal);
-                hexString = ss.str();
             }
+            hexString = ss.str();
         },
         kw);
     return hexString;