Wessel
18 hours ago
committed by
GitHub
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
1 changed files with
3 additions and
2 deletions
-
src/Packet.cpp
|
|
|
@ -63,9 +63,11 @@ uint8_t Packet::writeTo(uint8_t dest[]) const { |
|
|
|
} |
|
|
|
|
|
|
|
bool Packet::readFrom(const uint8_t src[], uint8_t len) { |
|
|
|
if (len < 2) return false; // minimum: header + path_len
|
|
|
|
uint8_t i = 0; |
|
|
|
header = src[i++]; |
|
|
|
if (hasTransportCodes()) { |
|
|
|
if (i + 4 >= len) return false; // need 4 transport bytes + the path_len byte
|
|
|
|
memcpy(&transport_codes[0], &src[i], 2); i += 2; |
|
|
|
memcpy(&transport_codes[1], &src[i], 2); i += 2; |
|
|
|
} else { |
|
|
|
@ -75,9 +77,8 @@ bool Packet::readFrom(const uint8_t src[], uint8_t len) { |
|
|
|
if (!isValidPathLen(path_len)) return false; // bad encoding
|
|
|
|
|
|
|
|
uint8_t bl = getPathByteLen(); |
|
|
|
if (i + bl >= len) return false; // path + at least 1 byte payload must fit
|
|
|
|
memcpy(path, &src[i], bl); i += bl; |
|
|
|
|
|
|
|
if (i >= len) return false; // bad encoding
|
|
|
|
payload_len = len - i; |
|
|
|
if (payload_len > sizeof(payload)) return false; // bad encoding
|
|
|
|
memcpy(payload, &src[i], payload_len); //i += payload_len;
|
|
|
|
|