Skip to content
This repository has been archived by the owner on Apr 22, 2023. It is now read-only.

Merge v0.10 to v0.12 #8886

Closed
wants to merge 55 commits into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
55 commits
Select commit Hold shift + click to select a range
542ac7f
child_process: properly support optional args
cjihrig Sep 17, 2014
c8e0bdd
doc: document _transform callback takes 2 args
calvinmetcalf Sep 3, 2014
d87ae24
hdr: always define NODE_WANT_INTERNALS
indutny Sep 23, 2014
2b7c8a2
test: check for multi-localhost support
tjfontaine Oct 13, 2014
641cea0
doc: build branch versioned docs
tjfontaine Oct 13, 2014
1524d48
doc: update design to match nodejs.org
fitzage Jun 17, 2014
6a95e9f
tls add secureOptions documentation
Oct 15, 2014
0ec78c9
configure: disable ssl2/ssl3 by default
indutny Oct 15, 2014
d671291
doc: document why SSL2/SSL3 is disabled
indutny Oct 15, 2014
e0e38c2
deps: update openssl to 1.0.1j
indutny Oct 15, 2014
707cc25
test: fix test-crypto-stream
indutny Oct 15, 2014
c1f4aac
build: revert change to disable ssl2 and ssl3
tjfontaine Oct 15, 2014
d601c76
crypto: allow runtime opt in using SSLv2/SSLv3
tjfontaine Oct 15, 2014
2afa3d8
test: crypto-domains avoid spurious failures
tjfontaine Oct 16, 2014
3859fbd
test: fix test-net-listen-fd0 for pipes
tjfontaine Jan 28, 2014
3139fa2
crypto: extra caution in setting ssl options
orangemocha Oct 16, 2014
b259f24
docs: update api location
tjfontaine Oct 17, 2014
226c986
doc: clarify poodle mitigation
tjfontaine Oct 17, 2014
6c8593d
crypto: move disaling SSLv2/3 into JavaScript
tjfontaine Oct 17, 2014
7dbc024
doc: add note about key derivation
Oct 19, 2014
1349b68
crypto: allow forcing SSLv2/v3 via secureProtocol
indutny Oct 18, 2014
3544386
uv: Update to v0.10.29
tjfontaine Oct 20, 2014
fe2e8a4
2014.10.20, Version 0.10.33 (Stable)
tjfontaine Oct 21, 2014
b9283cf
tls: honorCipherOrder should not degrade defaults
tjfontaine Oct 22, 2014
69080f5
tls: enforce secureOptions on incoming clients
tjfontaine Oct 22, 2014
8d045a3
tests: add TLS tests matrix
Oct 23, 2014
e59eca5
Merge branch 'v0.10.33-release' into v0.10
tjfontaine Oct 23, 2014
ea69dd7
Now working on 0.10.34
tjfontaine Oct 23, 2014
523929c
repl: Private Buffer object in lib/* files
Oct 22, 2014
d435f4b
Merge remote-tracking branch 'joyent/v0.10' into v0.10
indutny Nov 4, 2014
88bd95c
doc: update openssl commands to use best practices
konklone Nov 7, 2014
5ff5945
doc: clarify dns.lookup vs dns.resolve
Nov 14, 2014
13a992b
doc: document the fds behind stdin/out/err
sam-github Oct 27, 2014
2ff29cc
test: use assert.throw to test exceptions
sam-github Sep 26, 2014
e17c5a7
child_process: check execFile args is an array
sam-github Sep 26, 2014
70dafa7
child_process: check fork args is an array
sam-github Sep 29, 2014
8032a21
test: test all spawn parameter positions
sam-github Oct 8, 2014
fbff705
v8: add api for aborting on uncaught exception
trevnorris Nov 19, 2014
caeb677
domains: fix issues with abort on uncaught
Oct 30, 2014
a1b2875
lint: fix lint issues
trevnorris Nov 19, 2014
3a08b7c
doc: cover stdio option in child_process
sam-github Oct 28, 2014
0d05123
timers: fix unref() memory leak
trevnorris Nov 26, 2014
3c9c920
tools: bundle mk-ca-bundle.pl from upstream curl
bnoordhuis Nov 9, 2013
479b0b4
tools: customize mk-ca-bundle.pl
bnoordhuis Nov 9, 2013
f9456a2
crypto: update root certificates
bnoordhuis Nov 9, 2013
8c86898
zlib: do not Unref() if wasn't Ref()ed
indutny Nov 6, 2014
5e503f4
doc: fix grammar in tls and timers
brendanashworth Dec 5, 2014
f5cb330
docs: fix streams example for write() after end()
a0viedo Dec 6, 2014
8120015
doc: clearer log messages in net code samples
Nov 23, 2014
1c031c8
deps: update libuv to 0.10.30
saghul Dec 9, 2014
d230fa9
doc: fix typo secureOptions in tls
silverwind Oct 24, 2014
0603c83
docs: clarify url.format documentation
Dec 1, 2014
69b122a
build: configure return exit status from gyp
srl295 Dec 10, 2014
813114d
src: remove icu_config
trevnorris Dec 15, 2014
ae6444d
Merge branch 'v0.10' into merge-review2
trevnorris Dec 16, 2014
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@ node_g
.benchmark_reports
/.project
/.cproject
icu_config.gypi

/out

Expand Down
3 changes: 3 additions & 0 deletions AUTHORS
Original file line number Diff line number Diff line change
Expand Up @@ -568,3 +568,6 @@ Kevin Simper <kevin.simper@gmail.com>
Jackson Tian <shyvo1987@gmail.com>
Tristan Berger <tristan.berger@gmail.com>
Mathias Schreck <schreck.mathias@googlemail.com>
Calvin Metcalf <cmetcalf@appgeo.com>
Matthew Fitzsimmons <matt@fitzage.com>
Swaagie <info@martijnswaagman.nl>
23 changes: 22 additions & 1 deletion ChangeLog
Original file line number Diff line number Diff line change
Expand Up @@ -787,7 +787,28 @@
* console: `console.dir()` bypasses inspect() methods (Nathan Rajlich)


2014.09.16, Version 0.10.32 (Stable)
2014.10.20, Version 0.10.33 (Stable)

* openssl: Update to 1.0.1j (Addressing multiple CVEs)

* uv: Update to v0.10.29

* child_process: properly support optional args (cjihrig)

* crypto: Disable autonegotiation for SSLv2/3 by default (Fedor Indutny,
Timothy J Fontaine, Alexis Campailla)

This is a behavior change, by default we will not allow the negotiation to
SSLv2 or SSLv3. If you want this behavior, run Node.js with either
`--enable-ssl2` or `--enable-ssl3` respectively.

This does not change the behavior for users specifically requesting
`SSLv2_method` or `SSLv3_method`. While this behavior is not advised, it is
assumed you know what you're doing since you're specifically asking to use
these methods.


2014.09.16, Version 0.10.32 (Stable), 0fe0d121551593c23a565db8397f85f17bb0f00e

* npm: Update to 1.4.28

Expand Down
13 changes: 11 additions & 2 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -188,6 +188,9 @@ website_files = \

doc: $(apidoc_dirs) $(website_files) $(apiassets) $(apidocs) tools/doc/ out/doc/changelog.html node

doc-branch: NODE_DOC_VERSION = v$(shell $(PYTHON) tools/getnodeversion.py | cut -f1,2 -d.)
doc-branch: doc

$(apidoc_dirs):
mkdir -p $@

Expand All @@ -201,10 +204,10 @@ out/doc/%: doc/%
cp -r $< $@

out/doc/api/%.json: doc/api/%.markdown node
out/Release/node tools/doc/generate.js --format=json $< > $@
NODE_DOC_VERSION=$(NODE_DOC_VERSION) out/Release/node tools/doc/generate.js --format=json $< > $@

out/doc/api/%.html: doc/api/%.markdown node
out/Release/node tools/doc/generate.js --format=html --template=doc/template.html $< > $@
NODE_DOC_VERSION=$(NODE_DOC_VERSION) out/Release/node tools/doc/generate.js --format=html --template=doc/template.html $< > $@

email.md: ChangeLog tools/email-footer.md
bash tools/changelog-head.sh | sed 's|^\* #|* \\#|g' > $@
Expand All @@ -223,6 +226,11 @@ website-upload: doc
rm -f ~/web/nodejs.org/dist/node-latest.tar.gz &&\
ln -s $(VERSION)/node-$(VERSION).tar.gz ~/web/nodejs.org/dist/node-latest.tar.gz'

doc-branch-upload: NODE_DOC_VERSION = v$(shell $(PYTHON) tools/getnodeversion.py | cut -f1,2 -d.)
doc-branch-upload: doc-branch
echo $(NODE_DOC_VERSION)
rsync -r out/doc/api/ node@nodejs.org:~/web/nodejs.org/$(NODE_DOC_VERSION)

docopen: out/doc/api/all.html
-google-chrome out/doc/api/all.html

Expand All @@ -231,6 +239,7 @@ docclean:

RAWVER=$(shell $(PYTHON) tools/getnodeversion.py)
VERSION=v$(RAWVER)
NODE_DOC_VERSION=$(VERSION)
RELEASE=$(shell $(PYTHON) tools/getnodeisrelease.py)
PLATFORM=$(shell uname | tr '[:upper:]' '[:lower:]')
ifeq ($(findstring x86_64,$(shell uname -m)),x86_64)
Expand Down
19 changes: 15 additions & 4 deletions configure
Original file line number Diff line number Diff line change
Expand Up @@ -287,6 +287,16 @@ parser.add_option('--without-ssl',
dest='without_ssl',
help='build without SSL')

parser.add_option("--without-ssl2",
action="store_true",
dest="ssl2",
help="Disable SSL v2")

parser.add_option("--without-ssl3",
action="store_true",
dest="ssl3",
help="Disable SSL v3")

parser.add_option('--xcode',
action='store_true',
dest='use_xcode',
Expand Down Expand Up @@ -645,11 +655,12 @@ def configure_openssl(o):
if options.without_ssl:
return

# OpenSSL uses `#ifndef OPENSSL_NO_SSL2` checks so only define the
# macro when we want to _disable_ SSL2.
if not options.with_sslv2:
if options.ssl2:
o['defines'] += ['OPENSSL_NO_SSL2=1']

if options.ssl3:
o['defines'] += ['OPENSSL_NO_SSL3=1']

if options.shared_openssl:
(libs, cflags) = pkg_config('openssl') or ('-lssl -lcrypto', '')

Expand Down Expand Up @@ -912,4 +923,4 @@ else:

gyp_args += args

subprocess.call(gyp_args)
sys.exit(subprocess.call(gyp_args))
43 changes: 19 additions & 24 deletions deps/openssl/asm/x64-win32-masm/aes/aesni-x86_64.asm
Original file line number Diff line number Diff line change
Expand Up @@ -454,6 +454,12 @@ $L$SEH_begin_aesni_ecb_encrypt::
mov r8,QWORD PTR[40+rsp]


lea rsp,QWORD PTR[((-88))+rsp]
movaps XMMWORD PTR[rsp],xmm6
movaps XMMWORD PTR[16+rsp],xmm7
movaps XMMWORD PTR[32+rsp],xmm8
movaps XMMWORD PTR[48+rsp],xmm9
$L$ecb_enc_body::
and rdx,-16
jz $L$ecb_ret

Expand Down Expand Up @@ -752,6 +758,12 @@ $L$ecb_dec_six::
movups XMMWORD PTR[80+rsi],xmm7

$L$ecb_ret::
movaps xmm6,XMMWORD PTR[rsp]
movaps xmm7,XMMWORD PTR[16+rsp]
movaps xmm8,XMMWORD PTR[32+rsp]
movaps xmm9,XMMWORD PTR[48+rsp]
lea rsp,QWORD PTR[88+rsp]
$L$ecb_enc_ret::
mov rdi,QWORD PTR[8+rsp] ;WIN64 epilogue
mov rsi,QWORD PTR[16+rsp]
DB 0F3h,0C3h ;repret
Expand Down Expand Up @@ -2766,26 +2778,7 @@ ALIGN 64
EXTERN __imp_RtlVirtualUnwind:NEAR

ALIGN 16
ecb_se_handler PROC PRIVATE
push rsi
push rdi
push rbx
push rbp
push r12
push r13
push r14
push r15
pushfq
sub rsp,64

mov rax,QWORD PTR[152+r8]

jmp $L$common_seh_tail
ecb_se_handler ENDP


ALIGN 16
ccm64_se_handler PROC PRIVATE
ecb_ccm64_se_handler PROC PRIVATE
push rsi
push rdi
push rbx
Expand Down Expand Up @@ -2823,7 +2816,7 @@ ccm64_se_handler PROC PRIVATE
lea rax,QWORD PTR[88+rax]

jmp $L$common_seh_tail
ccm64_se_handler ENDP
ecb_ccm64_se_handler ENDP


ALIGN 16
Expand Down Expand Up @@ -3026,15 +3019,17 @@ ALIGN 4
ALIGN 8
$L$SEH_info_ecb::
DB 9,0,0,0
DD imagerel ecb_se_handler
DD imagerel ecb_ccm64_se_handler
DD imagerel $L$ecb_enc_body,imagerel $L$ecb_enc_ret

$L$SEH_info_ccm64_enc::
DB 9,0,0,0
DD imagerel ccm64_se_handler
DD imagerel ecb_ccm64_se_handler
DD imagerel $L$ccm64_enc_body,imagerel $L$ccm64_enc_ret

$L$SEH_info_ccm64_dec::
DB 9,0,0,0
DD imagerel ccm64_se_handler
DD imagerel ecb_ccm64_se_handler
DD imagerel $L$ccm64_dec_body,imagerel $L$ccm64_dec_ret

$L$SEH_info_ctr32::
Expand Down
51 changes: 51 additions & 0 deletions deps/openssl/openssl/CHANGES
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,57 @@
OpenSSL CHANGES
_______________

Changes between 1.0.1i and 1.0.1j [15 Oct 2014]

*) SRTP Memory Leak.

A flaw in the DTLS SRTP extension parsing code allows an attacker, who
sends a carefully crafted handshake message, to cause OpenSSL to fail
to free up to 64k of memory causing a memory leak. This could be
exploited in a Denial Of Service attack. This issue affects OpenSSL
1.0.1 server implementations for both SSL/TLS and DTLS regardless of
whether SRTP is used or configured. Implementations of OpenSSL that
have been compiled with OPENSSL_NO_SRTP defined are not affected.

The fix was developed by the OpenSSL team.
(CVE-2014-3513)
[OpenSSL team]

*) Session Ticket Memory Leak.

When an OpenSSL SSL/TLS/DTLS server receives a session ticket the
integrity of that ticket is first verified. In the event of a session
ticket integrity check failing, OpenSSL will fail to free memory
causing a memory leak. By sending a large number of invalid session
tickets an attacker could exploit this issue in a Denial Of Service
attack.
(CVE-2014-3567)
[Steve Henson]

*) Build option no-ssl3 is incomplete.

When OpenSSL is configured with "no-ssl3" as a build option, servers
could accept and complete a SSL 3.0 handshake, and clients could be
configured to send them.
(CVE-2014-3568)
[Akamai and the OpenSSL team]

*) Add support for TLS_FALLBACK_SCSV.
Client applications doing fallback retries should call
SSL_set_mode(s, SSL_MODE_SEND_FALLBACK_SCSV).
(CVE-2014-3566)
[Adam Langley, Bodo Moeller]

*) Add additional DigestInfo checks.

Reencode DigestInto in DER and check against the original when
verifying RSA signature: this will reject any improperly encoded
DigestInfo structures.

Note: this is a precautionary measure and no attacks are currently known.

[Steve Henson]

Changes between 1.0.1h and 1.0.1i [6 Aug 2014]

*) Fix SRP buffer overrun vulnerability. Invalid parameters passed to the
Expand Down
6 changes: 6 additions & 0 deletions deps/openssl/openssl/Configure
Original file line number Diff line number Diff line change
Expand Up @@ -1767,6 +1767,9 @@ open(OUT,'>crypto/opensslconf.h.new') || die "unable to create crypto/opensslcon
print OUT "/* opensslconf.h */\n";
print OUT "/* WARNING: Generated automatically from opensslconf.h.in by Configure. */\n\n";

print OUT "#ifdef __cplusplus\n";
print OUT "extern \"C\" {\n";
print OUT "#endif\n";
print OUT "/* OpenSSL was configured with the following options: */\n";
my $openssl_algorithm_defines_trans = $openssl_algorithm_defines;
$openssl_experimental_defines =~ s/^\s*#\s*define\s+OPENSSL_NO_(.*)/#ifndef OPENSSL_EXPERIMENTAL_$1\n# ifndef OPENSSL_NO_$1\n# define OPENSSL_NO_$1\n# endif\n#endif/mg;
Expand Down Expand Up @@ -1871,6 +1874,9 @@ while (<IN>)
{ print OUT $_; }
}
close(IN);
print OUT "#ifdef __cplusplus\n";
print OUT "}\n";
print OUT "#endif\n";
close(OUT);
rename("crypto/opensslconf.h","crypto/opensslconf.h.bak") || die "unable to rename crypto/opensslconf.h\n" if -e "crypto/opensslconf.h";
rename("crypto/opensslconf.h.new","crypto/opensslconf.h") || die "unable to rename crypto/opensslconf.h.new\n";
Expand Down
2 changes: 1 addition & 1 deletion deps/openssl/openssl/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
## Makefile for OpenSSL
##

VERSION=1.0.1i
VERSION=1.0.1j
MAJOR=1
MINOR=0.1
SHLIB_VERSION_NUMBER=1.0.0
Expand Down
2 changes: 1 addition & 1 deletion deps/openssl/openssl/Makefile.bak
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
## Makefile for OpenSSL
##

VERSION=1.0.1i-dev
VERSION=1.0.1j-dev
MAJOR=1
MINOR=0.1
SHLIB_VERSION_NUMBER=1.0.0
Expand Down
7 changes: 7 additions & 0 deletions deps/openssl/openssl/NEWS
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,13 @@
This file gives a brief overview of the major changes between each OpenSSL
release. For more details please read the CHANGES file.

Major changes between OpenSSL 1.0.1i and OpenSSL 1.0.1j [15 Oct 2014]

o Fix for CVE-2014-3513
o Fix for CVE-2014-3567
o Mitigation for CVE-2014-3566 (SSL protocol vulnerability)
o Fix for CVE-2014-3568

Major changes between OpenSSL 1.0.1h and OpenSSL 1.0.1i [6 Aug 2014]

o Fix for CVE-2014-3512
Expand Down
2 changes: 1 addition & 1 deletion deps/openssl/openssl/README
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@

OpenSSL 1.0.1i 6 Aug 2014
OpenSSL 1.0.1j 15 Oct 2014

Copyright (c) 1998-2011 The OpenSSL Project
Copyright (c) 1995-1998 Eric A. Young, Tim J. Hudson
Expand Down
21 changes: 18 additions & 3 deletions deps/openssl/openssl/apps/makeapps.com
Original file line number Diff line number Diff line change
Expand Up @@ -773,9 +773,12 @@ $ CCDEFS = "MONOLITH"
$ IF F$TYPE(USER_CCDEFS) .NES. "" THEN CCDEFS = CCDEFS + "," + USER_CCDEFS
$ CCEXTRAFLAGS = ""
$ IF F$TYPE(USER_CCFLAGS) .NES. "" THEN CCEXTRAFLAGS = USER_CCFLAGS
$ CCDISABLEWARNINGS = "" !!! "LONGLONGTYPE,LONGLONGSUFX,FOUNDCR"
$ IF F$TYPE(USER_CCDISABLEWARNINGS) .NES. "" THEN -
CCDISABLEWARNINGS = CCDISABLEWARNINGS + "," + USER_CCDISABLEWARNINGS
$ CCDISABLEWARNINGS = "" !!! "MAYLOSEDATA3" !!! "LONGLONGTYPE,LONGLONGSUFX,FOUNDCR"
$ IF F$TYPE(USER_CCDISABLEWARNINGS) .NES. ""
$ THEN
$ IF CCDISABLEWARNINGS .NES. "" THEN CCDISABLEWARNINGS = CCDISABLEWARNINGS + ","
$ CCDISABLEWARNINGS = CCDISABLEWARNINGS + USER_CCDISABLEWARNINGS
$ ENDIF
$!
$! Check To See If We Have A ZLIB Option.
$!
Expand Down Expand Up @@ -1064,6 +1067,18 @@ $! Finish up the definition of CC.
$!
$ IF COMPILER .EQS. "DECC"
$ THEN
$! Not all compiler versions support MAYLOSEDATA3.
$ OPT_TEST = "MAYLOSEDATA3"
$ DEFINE /USER_MODE SYS$ERROR NL:
$ DEFINE /USER_MODE SYS$OUTPUT NL:
$ 'CC' /NOCROSS_REFERENCE /NOLIST /NOOBJECT -
/WARNINGS = DISABLE = ('OPT_TEST', EMPTYFILE) NL:
$ IF ($SEVERITY)
$ THEN
$ IF CCDISABLEWARNINGS .NES. "" THEN -
CCDISABLEWARNINGS = CCDISABLEWARNINGS+ ","
$ CCDISABLEWARNINGS = CCDISABLEWARNINGS+ OPT_TEST
$ ENDIF
$ IF CCDISABLEWARNINGS .NES. ""
$ THEN
$ CCDISABLEWARNINGS = " /WARNING=(DISABLE=(" + CCDISABLEWARNINGS + "))"
Expand Down
Loading