From a865dfe3223a6c3107f22aacf477e9d26f2773f4 Mon Sep 17 00:00:00 2001 From: john30 Date: Wed, 31 Dec 2014 10:47:22 +0100 Subject: [PATCH] return error when part or name was defined and part is last item --- src/lib/ebus/data.cpp | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) 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