crc32 warning
This commit is contained in:
@@ -24,6 +24,7 @@
|
|||||||
|
|
||||||
#include <cstdint>
|
#include <cstdint>
|
||||||
#include <cstring>
|
#include <cstring>
|
||||||
|
#include <limits>
|
||||||
#include <stdexcept>
|
#include <stdexcept>
|
||||||
#include <vector>
|
#include <vector>
|
||||||
|
|
||||||
@@ -75,6 +76,9 @@ void append_crc32_impl::handle(pmt::pmt_t msg)
|
|||||||
result.process_bytes(data, len);
|
result.process_bytes(data, len);
|
||||||
uint32_t crc = result.checksum();
|
uint32_t crc = result.checksum();
|
||||||
|
|
||||||
|
if(len > std::numeric_limits<size_t>::max() - sizeof(uint32_t))
|
||||||
|
throw std::length_error("append_crc32 payload too large");
|
||||||
|
|
||||||
std::vector<uint8_t> out(len + sizeof(uint32_t));
|
std::vector<uint8_t> out(len + sizeof(uint32_t));
|
||||||
std::memcpy(out.data(), data, len);
|
std::memcpy(out.data(), data, len);
|
||||||
std::memcpy(out.data() + len, &crc, sizeof(uint32_t));
|
std::memcpy(out.data() + len, &crc, sizeof(uint32_t));
|
||||||
|
|||||||
Reference in New Issue
Block a user