From 9ea82aafd67728501b9b2b87c2ba18c0dcddd3a8 Mon Sep 17 00:00:00 2001 From: Alex Robenko Date: Wed, 19 Jun 2024 18:03:32 +1000 Subject: [PATCH] More fixes to the RemLengthMemberField adapter. --- include/comms/field/adapter/RemLengthMemberField.h | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/include/comms/field/adapter/RemLengthMemberField.h b/include/comms/field/adapter/RemLengthMemberField.h index 760d52d..1336e8f 100644 --- a/include/comms/field/adapter/RemLengthMemberField.h +++ b/include/comms/field/adapter/RemLengthMemberField.h @@ -363,6 +363,11 @@ class RemLengthMemberField : public TBase static const std::size_t NextIdx = (TFromIdx <= TLenFieldIdx) ? TLenFieldIdx + 1 : TFromIdx; + if ((std::tuple_size::value <= TUntilIdx) && + (len < reqLen)) { + return comms::ErrorStatus::NotEnoughData; + } + auto remLen = std::min(len, reqLen); es = BaseImpl::template readFromUntilAndUpdateLen(iter, remLen); auto consumed = reqLen - remLen;