- fixed - GOOSE subscriber is not processing octet string when longer than the one received at first time (LIB61850-232)

pull/375/head v1.5.1
Michael Zillgith 4 years ago
parent 77e8144348
commit 210cf30897

@ -277,6 +277,22 @@ parseAllData(uint8_t* buffer, int allDataLength, MmsValue* dataSetValues)
value->value.octetString.size = elementLength;
memcpy(value->value.octetString.buf, buffer + bufPos, elementLength);
}
else {
uint8_t* newBuf = (uint8_t*)GLOBAL_MALLOC(elementLength);
if (newBuf) {
memcpy(newBuf, buffer + bufPos, elementLength);
uint8_t* oldBuf = value->value.octetString.buf;
value->value.octetString.buf = newBuf;
value->value.octetString.maxSize = elementLength;
value->value.octetString.size = elementLength;
GLOBAL_FREEMEM(oldBuf);
}
}
}
else {
pe = GOOSE_PARSE_ERROR_TYPE_MISMATCH;

Loading…
Cancel
Save