-
Notifications
You must be signed in to change notification settings - Fork 791
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 <[email protected]>
Signed-off-by: Mario Dominguez <[email protected]>
…with OpenSSL initialization and destruction. Signed-off-by: Mario Dominguez <[email protected]>
… present Signed-off-by: Mario Dominguez <[email protected]>
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 <[email protected]> * Refs #22024: Make OpenSSLInit Mayers singleton Signed-off-by: Mario Dominguez <[email protected]> * Refs #22024: Fix: Do not register atexit in OPenSSL. Instead, Comply with OpenSSL initialization and destruction. Signed-off-by: Mario Dominguez <[email protected]> * Refs #22024: Do not reference OpenSSLInit if security features are no present Signed-off-by: Mario Dominguez <[email protected]> --------- Signed-off-by: Mario Dominguez <[email protected]> (cherry picked from commit 44310c4)
* Refs #22024: Add BB test Signed-off-by: Mario Dominguez <[email protected]> * Refs #22024: Make OpenSSLInit Mayers singleton Signed-off-by: Mario Dominguez <[email protected]> * Refs #22024: Fix: Do not register atexit in OPenSSL. Instead, Comply with OpenSSL initialization and destruction. Signed-off-by: Mario Dominguez <[email protected]> * Refs #22024: Do not reference OpenSSLInit if security features are no present Signed-off-by: Mario Dominguez <[email protected]> --------- Signed-off-by: Mario Dominguez <[email protected]> (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 <[email protected]> * Refs #22024: Make OpenSSLInit Mayers singleton Signed-off-by: Mario Dominguez <[email protected]> * Refs #22024: Fix: Do not register atexit in OPenSSL. Instead, Comply with OpenSSL initialization and destruction. Signed-off-by: Mario Dominguez <[email protected]> * Refs #22024: Do not reference OpenSSLInit if security features are no present Signed-off-by: Mario Dominguez <[email protected]> --------- Signed-off-by: Mario Dominguez <[email protected]> (cherry picked from commit 44310c4) # Conflicts: # src/cpp/rtps/RTPSDomainImpl.hpp
* Refs #22024: Add BB test Signed-off-by: Mario Dominguez <[email protected]> * Refs #22024: Make OpenSSLInit Mayers singleton Signed-off-by: Mario Dominguez <[email protected]> * Refs #22024: Fix: Do not register atexit in OPenSSL. Instead, Comply with OpenSSL initialization and destruction. Signed-off-by: Mario Dominguez <[email protected]> * Refs #22024: Do not reference OpenSSLInit if security features are no present Signed-off-by: Mario Dominguez <[email protected]> --------- Signed-off-by: Mario Dominguez <[email protected]> (cherry picked from commit 44310c4) # Conflicts: # src/cpp/rtps/RTPSDomainImpl.hpp
* Refs #22024: Add BB test Signed-off-by: Mario Dominguez <[email protected]> * Refs #22024: Make OpenSSLInit Mayers singleton Signed-off-by: Mario Dominguez <[email protected]> * Refs #22024: Fix: Do not register atexit in OPenSSL. Instead, Comply with OpenSSL initialization and destruction. Signed-off-by: Mario Dominguez <[email protected]> * Refs #22024: Do not reference OpenSSLInit if security features are no present Signed-off-by: Mario Dominguez <[email protected]> --------- Signed-off-by: Mario Dominguez <[email protected]> (cherry picked from commit 44310c4) Co-authored-by: Mario Domínguez López <[email protected]>
* Refs #22024: Add BB test Signed-off-by: Mario Dominguez <[email protected]> * Refs #22024: Make OpenSSLInit Mayers singleton Signed-off-by: Mario Dominguez <[email protected]> * Refs #22024: Fix: Do not register atexit in OPenSSL. Instead, Comply with OpenSSL initialization and destruction. Signed-off-by: Mario Dominguez <[email protected]> * Refs #22024: Do not reference OpenSSLInit if security features are no present Signed-off-by: Mario Dominguez <[email protected]> --------- Signed-off-by: Mario Dominguez <[email protected]> (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 <[email protected]> * Refs #22024: Make OpenSSLInit Mayers singleton Signed-off-by: Mario Dominguez <[email protected]> * Refs #22024: Fix: Do not register atexit in OPenSSL. Instead, Comply with OpenSSL initialization and destruction. Signed-off-by: Mario Dominguez <[email protected]> * Refs #22024: Do not reference OpenSSLInit if security features are no present Signed-off-by: Mario Dominguez <[email protected]> --------- Signed-off-by: Mario Dominguez <[email protected]> (cherry picked from commit 44310c4) # Conflicts: # src/cpp/rtps/RTPSDomainImpl.hpp * Solve conflicts Signed-off-by: Mario Dominguez <[email protected]> * Apply Miguels suggestion Signed-off-by: Mario Dominguez <[email protected]> --------- Signed-off-by: Mario Dominguez <[email protected]> Co-authored-by: Mario Domínguez López <[email protected]> Co-authored-by: Mario Dominguez <[email protected]>
* [22024] Improve `OpenSSL` lifecycle handling (#5384) * Refs #22024: Add BB test Signed-off-by: Mario Dominguez <[email protected]> * Refs #22024: Make OpenSSLInit Mayers singleton Signed-off-by: Mario Dominguez <[email protected]> * Refs #22024: Fix: Do not register atexit in OPenSSL. Instead, Comply with OpenSSL initialization and destruction. Signed-off-by: Mario Dominguez <[email protected]> * Refs #22024: Do not reference OpenSSLInit if security features are no present Signed-off-by: Mario Dominguez <[email protected]> --------- Signed-off-by: Mario Dominguez <[email protected]> (cherry picked from commit 44310c4) * Refs #21627: OpenSSLInit headers Signed-off-by: Mario Dominguez <[email protected]> * Refs #21627: Define OpenSSL API compat 10101 Signed-off-by: Mario Dominguez <[email protected]> --------- Signed-off-by: Mario Dominguez <[email protected]> Co-authored-by: Mario Domínguez López <[email protected]> Co-authored-by: Mario Dominguez <[email protected]>
* Refs #22024: Add BB test Signed-off-by: Mario Dominguez <[email protected]> * Refs #22024: Make OpenSSLInit Mayers singleton Signed-off-by: Mario Dominguez <[email protected]> * Refs #22024: Fix: Do not register atexit in OPenSSL. Instead, Comply with OpenSSL initialization and destruction. Signed-off-by: Mario Dominguez <[email protected]> * Refs #22024: Do not reference OpenSSLInit if security features are no present Signed-off-by: Mario Dominguez <[email protected]> --------- Signed-off-by: Mario Dominguez <[email protected]> (cherry picked from commit 44310c4) # Conflicts: # src/cpp/rtps/RTPSDomainImpl.hpp
* Refs #22024: Add BB test Signed-off-by: Mario Dominguez <[email protected]> * Refs #22024: Make OpenSSLInit Mayers singleton Signed-off-by: Mario Dominguez <[email protected]> * Refs #22024: Fix: Do not register atexit in OPenSSL. Instead, Comply with OpenSSL initialization and destruction. Signed-off-by: Mario Dominguez <[email protected]> * Refs #22024: Do not reference OpenSSLInit if security features are no present Signed-off-by: Mario Dominguez <[email protected]> --------- Signed-off-by: Mario Dominguez <[email protected]> (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 <[email protected]> * Refs #22024: Make OpenSSLInit Mayers singleton Signed-off-by: Mario Dominguez <[email protected]> * Refs #22024: Fix: Do not register atexit in OPenSSL. Instead, Comply with OpenSSL initialization and destruction. Signed-off-by: Mario Dominguez <[email protected]> * Refs #22024: Do not reference OpenSSLInit if security features are no present Signed-off-by: Mario Dominguez <[email protected]> --------- Signed-off-by: Mario Dominguez <[email protected]> (cherry picked from commit 44310c4) # Conflicts: # src/cpp/rtps/RTPSDomainImpl.hpp * Solve conflicts Signed-off-by: Mario Dominguez <[email protected]> --------- Signed-off-by: Mario Dominguez <[email protected]> Co-authored-by: Mario Domínguez López <[email protected]> Co-authored-by: Mario Dominguez <[email protected]>
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