Crashes
=======

.. Release Notes from this point.

:critical:`[Critical]` Crash when using Monitoring Library 2.0 and logging.mode_mask set to SECURITY_TOPIC
----------------------------------------------------------------------------------------------------------
When the ``logging.mode_mask`` property was set to ``SECURITY_TOPIC``
while *Monitoring Library 2.0* was enabled, a crash occurred when a
security event was logged in an application.


[RTI Issue ID SEC-2897]

:critical:`[Critical]` Potential undefined behavior after error acquiring mutex during remote identity validation or local Permissions Document Update *
--------------------------------------------------------------------------------------------------------------------------------------------------------
In the unlikely scenario of failing to acquire a mutex used to protect
against concurrent updates of security artifacts (specifically,
Certificate Revocation Lists and Permissions Documents), the
*Builtin Security Plugins* could have exhibited undefined behavior due
to attempting to release the not-acquired mutex.


[RTI Issue ID SEC-2885]

:critical:`[Critical]` Invalid locking situation when creating DomainParticipant with Security enabled *
--------------------------------------------------------------------------------------------------------
An unlikely crash or locked mutex escape could happen during the
creation of a secure *DomainParticipant*, when using the *Builtin
Security Plugins*. This could happen only during the creation of the
secure *DomainParticipant* when facing additional issues, such as memory
exhaustion.


[RTI Issue ID SEC-2883]

:critical:`[Critical]` Invalid read when simultaneously changing Certificate Revocation List and validating local DomainParticipant's identity status *
-------------------------------------------------------------------------------------------------------------------------------------------------------
Suppose you had OCSP (Online Certificate Status Protocol) enabled,
through either the ``dds.sec.auth.ocsp_responder_uri`` property or the
Identity Certificate’s ``authorityInfoAccess`` field. If you changed the
contents of your Certificate Revocation List while validating the
identity status of the local *DomainParticipant*, a race condition would
have occurred because those two operations were not thread-safe with
respect to each other. Validation of the local *DomainParticipant*
identity status happens when:

- There is a change in the Identity Certificate.

- The Identity Certificate expiration date is closer than the value of
  the
  ``dds.participant.trust_plugins.expiration_advance_notice_duration.sec``
  property.

- The expiration date of the OCSP response is closer than the value of
  the
  ``dds.participant.trust_plugins.certificate_status_advance_update_duration``
  property.

This race condition led to the reading of invalid memory. A
memory-checking tool such as Valgrind™ would have reported invalid reads
in a function due to accessing an address freed by a different function.
Your application may have crashed with this log message:

::

   100: ../crypto/x509/x509cset.c:82: OpenSSL internal error: refcount error


[RTI Issue ID SEC-2853]

:critical:`[Critical]` Problems on VxWorks when multiple threads tried creating the first DomainParticipant or deleting the last DomainParticipant
--------------------------------------------------------------------------------------------------------------------------------------------------
On VxWorks® platforms, a segmentation fault may have occurred if multiple
threads concurrently tried to create the initial *DomainParticipant*.
Additionally, a memory leak might have resulted from multiple threads
simultaneously trying to delete the final *DomainParticipant* in an
application.


[RTI Issue ID SEC-2810]

:critical:`[Critical]` Potential stack buffer read overflow in Builtin Security Plugins when registering local endpoint
-----------------------------------------------------------------------------------------------------------------------
An application using the *Builtin Security Plugins* may have attempted
to read invalid memory during the creation of a local secure entity
(*DomainParticipant*, *DataWriter*, or *DataReader*). This could have
resulted in a segmentation fault. As a result of reading invalid data,
there was also a low chance of a discovery incompatibility due to a
mismatch of security algorithms.


[RTI Issue ID SEC-2849]



:critical:`[Critical]` Potential segmentation fault in Builtin Security Plugins when discovering a DomainParticipant
--------------------------------------------------------------------------------------------------------------------
Assume that in the Governance Document, at least one ``protection_kind``
field, other than ``rtps_protection_kind``, is set to a value other than
``NONE``. When one *DomainParticipant* was discovering another, there
was a race condition leading to a NULL pointer dereference in the
internal function ``RTI_Security_Cryptography_registerEndpoint``. This
problem only affected versions 7.3.0 and above.


[RTI Issue ID SEC-2913]

:major:`[Major]` Potential precondition failure when removing a remote DomainParticipant that has secure endpoints
------------------------------------------------------------------------------------------------------------------
Consider the following scenario:

-  *DomainParticipant* ParticipantA has endpoints that have
   ``data_protection_kind`` or ``metadata_protection_kind`` set to a
   value other than ``NONE`` in the Governance Document.

-  *DomainParticipant* ParticipantB was communicating with ParticipantA
   but is no longer doing so.

-  ParticipantB is using debug libraries.

While ParticipantB was removing ParticipantA, there was a race condition
that made ParticipantB sometimes generate the following precondition
error in the internal function
``RTI_Security_CryptographyKeyHandle_removeFromEndpointList``:

::

   !precondition: "self->entityType == RTI_SECURITY_ENDPOINT_TYPE_UNKNOWN && self->nextRemoteEndpointKey != ((void *)0)"

The precondition error was followed by invalid writes due to improper
cleanup.

This problem did not affect release libraries and has been fixed by
removing the incorrect precondition.


[RTI Issue ID SEC-2909]





.. include:: ../../../../../connext_doc.1.0/srcDoc/release_notes/whats_fixed/disregard_if_7xbug.txt