5.5. What’s Fixed in 7.0.0

[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.

5.5.1. [Minor] Memory Leak when Running out of Memory

If either of the internal functions RTITLS_ConnectionEndpointFactoryTLSv4_createConnectEndpoint() or RTITLS_ConnectionEndpointFactoryTLSv4_createAcceptEndpoint() ran out of memory, connection creation would fail with a memory leak.

Here is one example set of error messages, along with a ValgrindTM result:

NDDS_Transport_TCPv4_Plugin_clientOpenControlConnection_connEA:!create connection endpoint
NDDS_Transport_TCPv4_Plugin_clientOpenControlConnection_connEA:error connecting to peer at 127.0.0.1:36025
NDDS_Transport_TCPv4_Plugin_clientOpenControlConnection_connEA:failed to (re)connect client control connection
NDDS_Transport_TCPv4_create_sendresource_srEA:failed to open client control connection
==23757== 8,384 (6,280 direct, 2,104 indirect) bytes in 1 blocks are definitely lost in loss record 128 of 134
==23757==    at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==23757==    by 0x13F366D: CRYPTO_malloc (mem.c:222)
==23757==    by 0x13F36A0: CRYPTO_zalloc (mem.c:230)
==23757==    by 0x1331070: SSL_new (ssl_lib.c:691)
==23757==    by 0xC0FDE9: RTITLS_ConnectionEndpointFactoryTLSv4_createConnectEndpoint (TLSConnection.c:837)
==23757==    by 0x6266F8: NDDS_Transport_TCPv4_Plugin_clientOpenControlConnection_connEA (Tcpv4.c:3321)

The leak would only happen if memory was already exhausted, so this problem did not lead to unbounded memory growth.

This problem has been fixed. Those two functions will now fail without a memory leak.

[RTI Issue ID COREPLG-589]