-
Notifications
You must be signed in to change notification settings - Fork 778
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[22024] Improve OpenSSL
lifecycle handling
#5384
Conversation
f15d463
to
83a748f
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Changes look good to me, but this will not build if openssl is not in the system
7e26b83
to
8889271
Compare
Follow up of this PR will be in task |
Signed-off-by: Mario Dominguez <mariodominguez@eprosima.com>
Signed-off-by: Mario Dominguez <mariodominguez@eprosima.com>
…with OpenSSL initialization and destruction. Signed-off-by: Mario Dominguez <mariodominguez@eprosima.com>
… present Signed-off-by: Mario Dominguez <mariodominguez@eprosima.com>
8889271
to
705b6b6
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM with green CI
@Mergifyio backport 3.1.x 3.0.x |
✅ Backports have been created
|
* Refs #22024: Add BB test Signed-off-by: Mario Dominguez <mariodominguez@eprosima.com> * Refs #22024: Make OpenSSLInit Mayers singleton Signed-off-by: Mario Dominguez <mariodominguez@eprosima.com> * Refs #22024: Fix: Do not register atexit in OPenSSL. Instead, Comply with OpenSSL initialization and destruction. Signed-off-by: Mario Dominguez <mariodominguez@eprosima.com> * Refs #22024: Do not reference OpenSSLInit if security features are no present Signed-off-by: Mario Dominguez <mariodominguez@eprosima.com> --------- Signed-off-by: Mario Dominguez <mariodominguez@eprosima.com> (cherry picked from commit 44310c4)
* Refs #22024: Add BB test Signed-off-by: Mario Dominguez <mariodominguez@eprosima.com> * Refs #22024: Make OpenSSLInit Mayers singleton Signed-off-by: Mario Dominguez <mariodominguez@eprosima.com> * Refs #22024: Fix: Do not register atexit in OPenSSL. Instead, Comply with OpenSSL initialization and destruction. Signed-off-by: Mario Dominguez <mariodominguez@eprosima.com> * Refs #22024: Do not reference OpenSSLInit if security features are no present Signed-off-by: Mario Dominguez <mariodominguez@eprosima.com> --------- Signed-off-by: Mario Dominguez <mariodominguez@eprosima.com> (cherry picked from commit 44310c4)
@Mergifyio backport mergify/bp/2.14.x/pr-5386 mergify/bp/2.10.x/pr-5386 |
✅ Backports have been created
|
* Refs #22024: Add BB test Signed-off-by: Mario Dominguez <mariodominguez@eprosima.com> * Refs #22024: Make OpenSSLInit Mayers singleton Signed-off-by: Mario Dominguez <mariodominguez@eprosima.com> * Refs #22024: Fix: Do not register atexit in OPenSSL. Instead, Comply with OpenSSL initialization and destruction. Signed-off-by: Mario Dominguez <mariodominguez@eprosima.com> * Refs #22024: Do not reference OpenSSLInit if security features are no present Signed-off-by: Mario Dominguez <mariodominguez@eprosima.com> --------- Signed-off-by: Mario Dominguez <mariodominguez@eprosima.com> (cherry picked from commit 44310c4) # Conflicts: # src/cpp/rtps/RTPSDomainImpl.hpp
* Refs #22024: Add BB test Signed-off-by: Mario Dominguez <mariodominguez@eprosima.com> * Refs #22024: Make OpenSSLInit Mayers singleton Signed-off-by: Mario Dominguez <mariodominguez@eprosima.com> * Refs #22024: Fix: Do not register atexit in OPenSSL. Instead, Comply with OpenSSL initialization and destruction. Signed-off-by: Mario Dominguez <mariodominguez@eprosima.com> * Refs #22024: Do not reference OpenSSLInit if security features are no present Signed-off-by: Mario Dominguez <mariodominguez@eprosima.com> --------- Signed-off-by: Mario Dominguez <mariodominguez@eprosima.com> (cherry picked from commit 44310c4) # Conflicts: # src/cpp/rtps/RTPSDomainImpl.hpp
* Refs #22024: Add BB test Signed-off-by: Mario Dominguez <mariodominguez@eprosima.com> * Refs #22024: Make OpenSSLInit Mayers singleton Signed-off-by: Mario Dominguez <mariodominguez@eprosima.com> * Refs #22024: Fix: Do not register atexit in OPenSSL. Instead, Comply with OpenSSL initialization and destruction. Signed-off-by: Mario Dominguez <mariodominguez@eprosima.com> * Refs #22024: Do not reference OpenSSLInit if security features are no present Signed-off-by: Mario Dominguez <mariodominguez@eprosima.com> --------- Signed-off-by: Mario Dominguez <mariodominguez@eprosima.com> (cherry picked from commit 44310c4) Co-authored-by: Mario Domínguez López <116071334+Mario-DL@users.noreply.github.com>
* Refs #22024: Add BB test Signed-off-by: Mario Dominguez <mariodominguez@eprosima.com> * Refs #22024: Make OpenSSLInit Mayers singleton Signed-off-by: Mario Dominguez <mariodominguez@eprosima.com> * Refs #22024: Fix: Do not register atexit in OPenSSL. Instead, Comply with OpenSSL initialization and destruction. Signed-off-by: Mario Dominguez <mariodominguez@eprosima.com> * Refs #22024: Do not reference OpenSSLInit if security features are no present Signed-off-by: Mario Dominguez <mariodominguez@eprosima.com> --------- Signed-off-by: Mario Dominguez <mariodominguez@eprosima.com> (cherry picked from commit 44310c4) # Conflicts: # src/cpp/rtps/RTPSDomainImpl.hpp
* [22024] Improve `OpenSSL` lifecycle handling (#5384) * Refs #22024: Add BB test Signed-off-by: Mario Dominguez <mariodominguez@eprosima.com> * Refs #22024: Make OpenSSLInit Mayers singleton Signed-off-by: Mario Dominguez <mariodominguez@eprosima.com> * Refs #22024: Fix: Do not register atexit in OPenSSL. Instead, Comply with OpenSSL initialization and destruction. Signed-off-by: Mario Dominguez <mariodominguez@eprosima.com> * Refs #22024: Do not reference OpenSSLInit if security features are no present Signed-off-by: Mario Dominguez <mariodominguez@eprosima.com> --------- Signed-off-by: Mario Dominguez <mariodominguez@eprosima.com> (cherry picked from commit 44310c4) # Conflicts: # src/cpp/rtps/RTPSDomainImpl.hpp * Solve conflicts Signed-off-by: Mario Dominguez <mariodominguez@eprosima.com> * Apply Miguels suggestion Signed-off-by: Mario Dominguez <mariodominguez@eprosima.com> --------- Signed-off-by: Mario Dominguez <mariodominguez@eprosima.com> Co-authored-by: Mario Domínguez López <116071334+Mario-DL@users.noreply.github.com> Co-authored-by: Mario Dominguez <mariodominguez@eprosima.com>
Description
This PR fixes a crash in
OpenSSL
provoked when theatexit
callback fromopenssl
is triggered upon process destruction, making it to trigger aSIGSEV
on an already releasedOpenSSL
resource.In addition,
OpenSSL
is now a Meyers singleton attached toRTPSDomainImpl
.In accordance with the best practices using OpenSSL and its documentation:
OpenSSL_init_crypto
(available in all versions along with theOPENSSL_INIT_NO_ATEXIT
option) that makesatexit
not being registered.atexit
is not registered, user has to explicitly callOpenSSL_cleanup()
(also, supported across versions).@Mergifyio backport 3.1.x 3.0.x 2.14.x 2.10.x
Contributor Checklist
versions.md
file (if applicable).Reviewer Checklist