diff --git a/services/distributeddataservice/libs/distributeddb/communicator/src/protocol_proto.cpp b/services/distributeddataservice/libs/distributeddb/communicator/src/protocol_proto.cpp index 73c99c0c1feb88a892fbdf6c1175ebb99e4f4842..28bf63a4d8b30525c7c351467b936f2bf23c7e6c 100755 --- a/services/distributeddataservice/libs/distributeddb/communicator/src/protocol_proto.cpp +++ b/services/distributeddataservice/libs/distributeddb/communicator/src/protocol_proto.cpp @@ -292,7 +292,8 @@ int ProtocolProto::AnalyzeSplitStructure(const ParseResult &inResult, uint32_t & // Secondly: Check fragCount and fragNo uint32_t lengthBeSplit = frameLen - sizeof(CommPhyHeader); - if (fragCount < MIN_FRAGMENT_COUNT || fragCount > lengthBeSplit || fragNo >= fragCount) { + if (fragCount < MIN_FRAGMENT_COUNT || fragCount > lengthBeSplit || + fragNo >= fragCount || fragCount == 0) { LOGE("[Proto][ParsePhyOpt] FragCount=%u or fragNo=%u illegal.", fragCount, fragNo); return -E_PARSE_FAIL; }