1
0
Fork 0

never read into the net number in ways that could cause an invalid value

This commit is contained in:
Kevin Matz 2023-05-20 13:20:33 -04:00
parent 88c9cfa7c9
commit 9a0fd158d6
2 changed files with 8 additions and 11 deletions

View File

@ -48,12 +48,9 @@ struct PortAddress {
uint8_t subnet : 4; //!< A group of 16 consecutive universes is referred to as a sub-net.
};
};
union{
uint8_t _net;
struct {
uint8_t net : 7; //!< A group of 16 consecutive Sub-Nets or 256 consecutive Universes is referred to as a net. There are 128 Nets in total.
bool reserved : 1;
};
struct {
uint8_t net : 7; //!< A group of 16 consecutive Sub-Nets or 256 consecutive Universes is referred to as a net. There are 128 Nets in total.
bool reserved : 1;
};
};
};

View File

@ -411,7 +411,7 @@ void dmx_data::iStream(std::shared_ptr<bufferstream> stream)
*stream >> sequence; // 5
*stream >> physical; // 6
*stream >> universe.subuni; // 7
*stream >> universe._net; // 8
universe.net = stream->readType<uint8_t>(); // 8
uint16_t length = stream->get() << 8 | // 9
stream->get(); // 10
// this value should be an even number in the range 2 512
@ -474,7 +474,7 @@ void nzs_data::iStream(std::shared_ptr<bufferstream> stream)
data.clear();
data.push_back(stream->get()); // 6
*stream >> universe.subuni; // 7
*stream >> universe._net; // 8
universe.net = stream->readType<uint8_t>(); // 8
uint16_t length = stream->get() << 8 | // 9
stream->get(); // 10
// this value should be an even number in the range 1 512
@ -733,7 +733,7 @@ void toddata_data::iStream(std::shared_ptr<bufferstream> stream)
stream->get(); // 11
stream->get(); // 12
*stream >> bind_index; // 13
*stream >> universe._net; // 14
universe.net = stream->readType<uint8_t>(); // 14
type = static_cast<RDM::TodCommandResponse>(stream->get()); // 15
*stream >> universe.subuni; // 16
*stream >> total_count; // 17-18
@ -796,7 +796,7 @@ void todcontrol_data::iStream(std::shared_ptr<bufferstream> stream)
stream->get(); // 11
stream->get(); // 12
stream->get(); // 13
*stream >> universe._net; // 14
universe.net = stream->readType<uint8_t>(); // 14
command = static_cast<RDM::TodControlCommand>(stream->get()); // 15
*stream >> universe.subuni; // 16
@ -837,7 +837,7 @@ void rdm_data::iStream(std::shared_ptr<bufferstream> stream)
stream->get(); // 11
stream->get(); // 12
stream->get(); // 13
*stream >> universe._net; // 14
universe.net = stream->readType<uint8_t>(); // 14
command = static_cast<RDM::RdmCommand>(stream->get()); // 15
*stream >> universe.subuni; // 16
data.reserve(stream->available() + 1);