diff --git a/services/distributeddataservice/libs/distributeddb/syncer/src/single_ver_serialize_manager.cpp b/services/distributeddataservice/libs/distributeddb/syncer/src/single_ver_serialize_manager.cpp index 41f410fe606a95699f1093960ee1febf24b29f4b..c5c6bf99311237edf455d4be54a0fff1a10cd4ef 100644 --- a/services/distributeddataservice/libs/distributeddb/syncer/src/single_ver_serialize_manager.cpp +++ b/services/distributeddataservice/libs/distributeddb/syncer/src/single_ver_serialize_manager.cpp @@ -346,17 +346,17 @@ int SingleVerSerializeManager::DataPacketDeSerialization(const uint8_t *buffer, return -E_VERSION_NOT_SUPPORT; } + packLen += static_cast(GenericSingleVerKvEntry::DeSerializeDatas(dataItems, parcel)); + if (parcel.IsError()) { + return -E_PARSE_FAIL; + } + auto packet = new (std::nothrow) DataRequestPacket(); if (packet == nullptr) { return -E_OUT_OF_MEMORY; } packet->SetVersion(version); - packLen += static_cast(GenericSingleVerKvEntry::DeSerializeDatas(dataItems, parcel)); - if (parcel.IsError()) { - return -E_PARSE_FAIL; - } - packet->SetData(dataItems); int errCode = DataPacketSyncerPartDeSerialization(parcel, packet, packLen, length, version); if (errCode != E_OK) {