10.3. What’s Fixed in 2.4.16.1

The following are fixes since Connext Cert 2.4.16.

[Critical]: System-stopping issue, such as a crash or data loss.
[Major]: Significant issue with no easy workaround.
[Minor]: Issue that usually has a workaround.
[Trivial]: Small issue, such as a typo in a log.

10.3.1. [Critical] When using Zero Copy, the sample returned by get_loan() could have an insufficient size

When certain data types were enabled for the Zero Copy v2 transport, the value returned by sizeof() was larger than the difference between the pointers returned by the DataWriter’s get_loan() method. As a consequence, applications were at risk of writing outside of allocated memory boundaries.

This problem has been resolved by updating an rtiddsgen code template. You must regenerate any code previously generated by rtiddsgen after installing the modified template.

[RTI Issue ID MICRO-12511]

10.3.2. [Major] Incorrect check for multicast address

Note

This issue only affected the reference PSL, not the PIL.

To determine if an IP address was a multicast address, Connext Cert should have checked if the first byte of the address fell within the range of 224-239. However, Connext Cert only checked if the address started with 239. If an application did not use 239 exactly, then the application would not join the multicast group and DomainParticipant creation could fail.

[RTI Issue ID MICRO-12795]

10.3.3. [Major] udpv4_singlethr_init_port_entry() function caused UDP communication to fail

Note

This issue only affected the reference PSL, not the PIL.

The function udpv4_singlethr_init_port_entry() did not initialize all fields of the struct sockaddr_in sock_addr object. This could cause the binding of a socket to fail, which then caused communication over the UDP transport to fail.

[RTI Issue ID MICRO-12765]