Pr/62742#63139
Closed
piyyy314 wants to merge 2 commits intonodejs:mainfrom
Closed
Conversation
Fixes a potential double-free issue where ManagedX509::operator= resets the underlying smart pointer using a raw pointer from another instance before incrementing the reference count. If both instances were managing the same underlying OpenSSL object, the reset could decrement the reference count to 0 and free the object before the reference count could be incremented. This fixes Coverity issue 367349 where different smart pointers were seemingly managing the same raw pointer. Fixes: nodejs#56926
Collaborator
|
Review requested:
|
There was a problem hiding this comment.
Pull request overview
This PR appears to combine a targeted fix in Node's X509 wrapper with a very large vendored-Rust change that removes most of icu_locale_core, a crate still used by the ICU4X locale/provider stack under deps/crates/vendor.
Changes:
- Adjusts
ManagedX509copy assignment to guard self-assignment and up-ref before resetting. - Deletes the
icu_locale_corecrate root plus most of its public locale/parsing/extensions/preferences implementation. - Removes optional feature modules (
serde,databake) and supporting helpers/macros from that vendored crate.
Reviewed changes
Copilot reviewed 1 out of 64 changed files in this pull request and generated no comments.
Show a summary per file
| File | Description |
|---|---|
src/crypto/crypto_x509.cc |
Fixes X509 copy-assignment flow |
deps/crates/vendor/icu_locale_core/src/zerovec.rs |
Deletes zero-copy locale docs |
deps/crates/vendor/icu_locale_core/src/subtags/variants.rs |
Deletes variant-list implementation |
deps/crates/vendor/icu_locale_core/src/subtags/variant.rs |
Deletes variant subtag type |
deps/crates/vendor/icu_locale_core/src/subtags/script.rs |
Deletes script subtag type |
deps/crates/vendor/icu_locale_core/src/subtags/region.rs |
Deletes region subtag type |
deps/crates/vendor/icu_locale_core/src/subtags/mod.rs |
Deletes subtag module exports |
deps/crates/vendor/icu_locale_core/src/subtags/language.rs |
Deletes language subtag type |
deps/crates/vendor/icu_locale_core/src/shortvec/mod.rs |
Deletes short boxed-slice storage |
deps/crates/vendor/icu_locale_core/src/shortvec/litemap.rs |
Deletes litemap store adapter |
deps/crates/vendor/icu_locale_core/src/serde.rs |
Deletes serde support |
deps/crates/vendor/icu_locale_core/src/preferences/mod.rs |
Deletes preferences API |
deps/crates/vendor/icu_locale_core/src/preferences/locale.rs |
Deletes locale-preference conversions |
deps/crates/vendor/icu_locale_core/src/preferences/extensions/unicode/mod.rs |
Deletes unicode preference module |
deps/crates/vendor/icu_locale_core/src/preferences/extensions/unicode/macros/struct_keyword.rs |
Deletes struct-keyword macro |
deps/crates/vendor/icu_locale_core/src/preferences/extensions/unicode/macros/mod.rs |
Deletes preference macro exports |
deps/crates/vendor/icu_locale_core/src/preferences/extensions/unicode/macros/enum_keyword.rs |
Deletes enum-keyword macro |
deps/crates/vendor/icu_locale_core/src/preferences/extensions/unicode/keywords/variant.rs |
Deletes variant preference keyword |
deps/crates/vendor/icu_locale_core/src/preferences/extensions/unicode/keywords/timezone.rs |
Deletes timezone preference keyword |
deps/crates/vendor/icu_locale_core/src/preferences/extensions/unicode/keywords/sentence_supression.rs |
Deletes sentence-break keyword |
deps/crates/vendor/icu_locale_core/src/preferences/extensions/unicode/keywords/regional_subdivision.rs |
Deletes subdivision preference keyword |
deps/crates/vendor/icu_locale_core/src/preferences/extensions/unicode/keywords/region_override.rs |
Deletes region-override keyword |
deps/crates/vendor/icu_locale_core/src/preferences/extensions/unicode/keywords/numbering_system.rs |
Deletes numbering-system keyword |
deps/crates/vendor/icu_locale_core/src/preferences/extensions/unicode/keywords/mod.rs |
Deletes keyword re-exports |
deps/crates/vendor/icu_locale_core/src/preferences/extensions/unicode/keywords/measurement_unit_override.rs |
Deletes measurement-unit override keyword |
deps/crates/vendor/icu_locale_core/src/preferences/extensions/unicode/keywords/measurement_system.rs |
Deletes measurement-system keyword |
deps/crates/vendor/icu_locale_core/src/preferences/extensions/unicode/keywords/line_break.rs |
Deletes line-break keyword |
deps/crates/vendor/icu_locale_core/src/preferences/extensions/unicode/keywords/line_break_word.rs |
Deletes word-break keyword |
deps/crates/vendor/icu_locale_core/src/preferences/extensions/unicode/keywords/hour_cycle.rs |
Deletes hour-cycle keyword |
deps/crates/vendor/icu_locale_core/src/preferences/extensions/unicode/keywords/first_day.rs |
Deletes first-day keyword |
deps/crates/vendor/icu_locale_core/src/preferences/extensions/unicode/keywords/emoji.rs |
Deletes emoji preference keyword |
deps/crates/vendor/icu_locale_core/src/preferences/extensions/unicode/keywords/dictionary_break.rs |
Deletes dictionary-break keyword |
deps/crates/vendor/icu_locale_core/src/preferences/extensions/unicode/keywords/currency.rs |
Deletes currency keyword |
deps/crates/vendor/icu_locale_core/src/preferences/extensions/unicode/keywords/currency_format.rs |
Deletes currency-format keyword |
deps/crates/vendor/icu_locale_core/src/preferences/extensions/unicode/keywords/collation.rs |
Deletes collation keywords |
deps/crates/vendor/icu_locale_core/src/preferences/extensions/unicode/keywords/calendar.rs |
Deletes calendar keywords |
deps/crates/vendor/icu_locale_core/src/preferences/extensions/unicode/errors.rs |
Deletes preference parse errors |
deps/crates/vendor/icu_locale_core/src/preferences/extensions/mod.rs |
Deletes preference extensions root |
deps/crates/vendor/icu_locale_core/src/parser/mod.rs |
Deletes parser module root |
deps/crates/vendor/icu_locale_core/src/parser/locale.rs |
Deletes locale parsing |
deps/crates/vendor/icu_locale_core/src/parser/langid.rs |
Deletes langid parsing |
deps/crates/vendor/icu_locale_core/src/parser/errors.rs |
Deletes parser error types |
deps/crates/vendor/icu_locale_core/src/macros.rs |
Deletes langid!/locale! macros |
deps/crates/vendor/icu_locale_core/src/lib.rs |
Deletes crate root |
deps/crates/vendor/icu_locale_core/src/helpers.rs |
Deletes shared macro/helpers |
deps/crates/vendor/icu_locale_core/src/extensions/unicode/value.rs |
Deletes unicode value type |
deps/crates/vendor/icu_locale_core/src/extensions/unicode/subdivision.rs |
Deletes unicode subdivision types |
deps/crates/vendor/icu_locale_core/src/extensions/unicode/mod.rs |
Deletes unicode extension root |
deps/crates/vendor/icu_locale_core/src/extensions/unicode/keywords.rs |
Deletes unicode keywords map |
deps/crates/vendor/icu_locale_core/src/extensions/unicode/key.rs |
Deletes unicode key type |
deps/crates/vendor/icu_locale_core/src/extensions/unicode/attributes.rs |
Deletes unicode attributes set |
deps/crates/vendor/icu_locale_core/src/extensions/unicode/attribute.rs |
Deletes unicode attribute type |
deps/crates/vendor/icu_locale_core/src/extensions/transform/value.rs |
Deletes transform value type |
deps/crates/vendor/icu_locale_core/src/extensions/transform/mod.rs |
Deletes transform extension root |
deps/crates/vendor/icu_locale_core/src/extensions/transform/key.rs |
Deletes transform key type |
deps/crates/vendor/icu_locale_core/src/extensions/transform/fields.rs |
Deletes transform fields map |
deps/crates/vendor/icu_locale_core/src/extensions/private/other.rs |
Deletes private-use subtag type |
deps/crates/vendor/icu_locale_core/src/extensions/private/mod.rs |
Deletes private-use extension root |
deps/crates/vendor/icu_locale_core/src/extensions/other/mod.rs |
Deletes other-extension implementation |
deps/crates/vendor/icu_locale_core/src/extensions/mod.rs |
Deletes extensions root |
deps/crates/vendor/icu_locale_core/src/databake.rs |
Deletes databake support |
deps/crates/vendor/icu_locale_core/src/data.rs |
Deletes DataLocale implementation |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
No description provided.