mirror of
https://github.com/espressif/openthread.git
synced 2026-09-07 17:50:09 +00:00
[network-data] add check for prefix length (#3626)
This commit is contained in:
@@ -76,7 +76,7 @@ inline uint32_t Reverse32(uint32_t v)
|
||||
return v;
|
||||
}
|
||||
|
||||
#define BitVectorBytes(x) (((x) + (CHAR_BIT - 1)) / CHAR_BIT)
|
||||
#define BitVectorBytes(x) static_cast<uint8_t>(((x) + (CHAR_BIT - 1)) / CHAR_BIT)
|
||||
|
||||
namespace BigEndian {
|
||||
|
||||
|
||||
@@ -345,7 +345,8 @@ public:
|
||||
bool IsValid(void) const
|
||||
{
|
||||
return ((GetLength() >= sizeof(*this) - sizeof(NetworkDataTlv)) &&
|
||||
(GetLength() >= BitVectorBytes(mPrefixLength) + sizeof(*this) - sizeof(NetworkDataTlv)));
|
||||
(GetLength() >= BitVectorBytes(mPrefixLength) + sizeof(*this) - sizeof(NetworkDataTlv)) &&
|
||||
(BitVectorBytes(mPrefixLength) <= sizeof(Ip6::Address)));
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
Reference in New Issue
Block a user