oem-ibm: Fix in pointer increment in the PCIe Config Data

The PCIe Config data is a 64 bytes huge data which needs to be
parsed and corresponding DBus values needs to be updated. The
parsing logic had a pointer increment issue that resulted in
some bug w.r.t the values.

The pointer incrementation here is for FRU Record Data -
SPEC - DSP0257_1.0.0 - Table 2 – PLDM FRU Record Data Format.

When we get a SetFruRecordTable command(Table 11) we have a portion
of FRU record data that needs to be parsed and updated and this
FRU Record data can be one or more.

The data here corresponds to the size of the whole
pldm_fru_record_data_format and based on the number of FRU fields
present we need to update the data pointer based on the FRU Field
Length.

Tested: Checked the DBus values are populated.

Change-Id: I35540565557d43acf6a58be540f7d8f6db7483a9
Signed-off-by: Pavithra Barithaya <pavithrabarithaya07@gmail.com>
diff --git a/oem/ibm/libpldmresponder/fru_oem_ibm.cpp b/oem/ibm/libpldmresponder/fru_oem_ibm.cpp
index b35a5b4..37bb645 100644
--- a/oem/ibm/libpldmresponder/fru_oem_ibm.cpp
+++ b/oem/ibm/libpldmresponder/fru_oem_ibm.cpp
@@ -41,7 +41,9 @@
 
         dataSize += sizeof(pldm_fru_record_data_format) -
                     sizeof(pldm_fru_record_tlv);
-        data += dataSize;
+
+        data += sizeof(pldm_fru_record_data_format) -
+                sizeof(pldm_fru_record_tlv);
 
         for ([[maybe_unused]] const auto& i :
              std::views::iota(0, (int)record->num_fru_fields))
@@ -91,11 +93,12 @@
                                            &tlv->value[tlv->length]);
                 setFirmwareUAK(value);
             }
-            // length of tlv is removed from the structure pldm_fru_record_tlv
-            // and the new tlv length is added back.
+
             dataSize += sizeof(pldm_fru_record_tlv) - sizeof(uint8_t) +
                         tlv->length;
-            data += dataSize;
+
+            // Increment data pointer by the size of the current TLV
+            data += sizeof(pldm_fru_record_tlv) - sizeof(uint8_t) + tlv->length;
         }
     }