mirror of
https://github.com/nodejs/node.git
synced 2024-12-01 16:10:02 +01:00
2c13cbbc0b
ASN1_STRING_to_UTF8() passes an ASN1_STRING to ASN1_STRING_set() but forgot to initialize the `length` field. Fixes the following valgrind error: $ valgrind -q --track-origins=yes --num-callers=19 \ out/Debug/node test/simple/test-tls-client-abort.js ==2690== Conditional jump or move depends on uninitialised value(s) ==2690== at 0x784B69: ASN1_STRING_set (asn1_lib.c:382) ==2690== by 0x809564: ASN1_mbstring_ncopy (a_mbstr.c:204) ==2690== by 0x8090F0: ASN1_mbstring_copy (a_mbstr.c:86) ==2690== by 0x782F1F: ASN1_STRING_to_UTF8 (a_strex.c:570) ==2690== by 0x78F090: asn1_string_canon (x_name.c:409) ==2690== by 0x78EF17: x509_name_canon (x_name.c:354) ==2690== by 0x78EA7D: x509_name_ex_d2i (x_name.c:210) ==2690== by 0x788058: ASN1_item_ex_d2i (tasn_dec.c:239) ==2690== by 0x7890D4: asn1_template_noexp_d2i (tasn_dec.c:746) ==2690== by 0x788CB6: asn1_template_ex_d2i (tasn_dec.c:607) ==2690== by 0x78877A: ASN1_item_ex_d2i (tasn_dec.c:448) ==2690== by 0x7890D4: asn1_template_noexp_d2i (tasn_dec.c:746) ==2690== by 0x788CB6: asn1_template_ex_d2i (tasn_dec.c:607) ==2690== by 0x78877A: ASN1_item_ex_d2i (tasn_dec.c:448) ==2690== by 0x787C93: ASN1_item_d2i (tasn_dec.c:136) ==2690== by 0x78F5E4: d2i_X509 (x_x509.c:141) ==2690== by 0x7C9B91: PEM_ASN1_read_bio (pem_oth.c:81) ==2690== by 0x7CA506: PEM_read_bio_X509 (pem_x509.c:67) ==2690== by 0x703C9A: node::crypto::SecureContext::AddRootCerts(v8::Arguments const&) (node_crypto.cc:497) ==2690== Uninitialised value was created by a stack allocation ==2690== at 0x782E89: ASN1_STRING_to_UTF8 (a_strex.c:560) |
||
---|---|---|
.. | ||
config | ||
openssl | ||
patches | ||
buildinf.h | ||
openssl.gyp | ||
README.chromium |
Name: openssl URL: http://openssl.org/source/ Version: 1.0.0f License: BSDish License File: openssl/LICENSE Description: This is OpenSSL, the standard SSL/TLS library, which is used only in Android. It's an unmodified, upstream source except for the patches listed below. ******************************************************************************** The following patches are taken from Android Open Source Project. progs.patch: Fixup sources under the apps/ directory that are not built under the android environment. small_records.patch: Reduce OpenSSL memory consumption. SSL records may be as large as 16K, but are typically < 2K. In addition, a historic bug in Windows allowed records to be as large 32K. OpenSSL statically allocates read and write buffers (34K and 18K respectively) used for processing records. With this patch, OpenSSL statically allocates 4K + 4K buffers, with the option of dynamically growing buffers to 34K + 4K, which is a saving of 44K per connection for the typical case. handshake_cutthrough.patch Enables SSL3+ clients to send application data immediately following the Finished message even when negotiating full-handshakes. With this patch, clients can negotiate SSL connections in 1-RTT even when performing full-handshakes. jsse.patch Support for JSSE implementation based on OpenSSL. npn.patch Transport Layer Security (TLS) Next Protocol Negotiation Extension sha1_armv4_large.patch This patch eliminates memory stores to addresses below SP. openssl_no_dtls1.patch Add missing #ifndef OPENSSL_NO_DTLS1 ******************************************************************************** The following patches are needed to compile this openssl on Chromium and pass the related net unit tests. empty_OPENSSL_cpuid_setup.patch Use a empty implementation for function OPENSSL_cpuid_setup to resolve link error. We should figure out how to geenrate platform specific implementation of OPENSSL_cpuid_setup by leveraging crypto/*cpuid.pl. x509_hash_name_algorithm_change.patch There are many symbolic links under /etc/ssl/certs created by using hash of the pem certificates in order for OpenSSL to find those certificate. Openssl has a tool to help you create hash symbolic links. (See tools/c_rehash) However the new openssl changed the hash algorithm, Unless you compile/install the latest openssl library and re-create all related symbolic links, the new openssl can not find some certificates because the links of those certificates were created by using old hash algorithm, which causes some tests failed. This patch gives a way to find a certificate according to its hash by using both new algorithm and old algorithm. crbug.com/111045 is used to track this issue. tls_exporter.patch Keying Material Exporters for Transport Layer Security (RFC 5705). Android platform support Copy config/android/openssl/opensslconf.h from Android's external/openssl/include/openssl/opensslconf.h