diff --git a/libuavcan/src/transport/uc_frame.cpp b/libuavcan/src/transport/uc_frame.cpp index 944bd8871e..6d49fec0db 100644 --- a/libuavcan/src/transport/uc_frame.cpp +++ b/libuavcan/src/transport/uc_frame.cpp @@ -155,10 +155,13 @@ bool Frame::compile(CanFrame& out_can_frame) const tail |= (1U << 5); } + UAVCAN_ASSERT(payload_len_ < sizeof(static_cast(NULL)->data)); + out_can_frame.dlc = static_cast(payload_len_); (void)copy(payload_, payload_ + payload_len_, out_can_frame.data); out_can_frame.data[out_can_frame.dlc] = tail; + out_can_frame.dlc++; /* * Discriminator