diff --git a/source/src/cip/cipepath.c b/source/src/cip/cipepath.c index 4dafe37bf..c168cdfb1 100644 --- a/source/src/cip/cipepath.c +++ b/source/src/cip/cipepath.c @@ -307,11 +307,13 @@ void CipEpathSetLogicalValue(const CipDword logical_value, CipMessageRouterResponse *const message) { switch(logical_format) { case kLogicalSegmentLogicalFormatEightBit: - AddSintToMessage(logical_value, &message->message); + OPENER_ASSERT( (logical_value <= UINT8_MAX) ); /* Sanity check before casting to a smaller integer. */ + AddSintToMessage( (EipUint8)logical_value, &message->message ); break; case kLogicalSegmentLogicalFormatSixteenBit: MoveMessageNOctets(1, &message->message); /* Needed for padding */ - AddIntToMessage(logical_value, &message->message); + OPENER_ASSERT( (logical_value <= UINT16_MAX) ); /* Sanity check before casting to a smaller integer. */ + AddIntToMessage( (EipUint16)logical_value, &message->message ); break; case kLogicalSegmentLogicalFormatThirtyTwoBit: MoveMessageNOctets(1, &message->message); /* Needed for padding */