diff --git a/src/lib/ebus/data.cpp b/src/lib/ebus/data.cpp index 6d5e65a1..185a196e 100644 --- a/src/lib/ebus/data.cpp +++ b/src/lib/ebus/data.cpp @@ -170,10 +170,12 @@ result_t DataField::create(vector::iterator& it, partType = pt_any; else { const char* partStr = (*it++).c_str(); - if (it == end) - break; - hasPartStr = partStr[0] != 0; + if (it == end) { + if (name.empty() == false || hasPartStr == true) + result = RESULT_ERR_MISSING_TYPE; + break; + } if (dstAddress == BROADCAST || isMaster(dstAddress) == true || (isWriteMessage == true && hasPartStr == false) || strcasecmp(partStr, "M") == 0) { // master data