never read into the net number in ways that could cause an invalid value
This commit is contained in:
parent
88c9cfa7c9
commit
9a0fd158d6
|
@ -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;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
|
|
@ -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);
|
||||
|
|
Loading…
Reference in New Issue