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

Commit 0c7f6ca

Browse files
author
Julien Gilli
committed
Merge remote-tracking branch 'upstream/v0.10' into merge-0-10-into-0-12
Conflicts: AUTHORS ChangeLog configure deps/uv/AUTHORS deps/uv/ChangeLog deps/uv/README.md deps/uv/config-unix.mk deps/uv/include/uv-private/uv-win.h deps/uv/include/uv.h deps/uv/src/unix/internal.h deps/uv/src/unix/kqueue.c deps/uv/src/unix/stream.c deps/uv/src/uv-common.c deps/uv/src/uv-common.h deps/uv/src/version.c deps/uv/src/win/poll.c deps/uv/test/test-osx-select.c deps/v8/src/debug-debugger.js deps/v8/src/isolate.cc deps/v8/src/isolate.h deps/v8/src/mirror-debugger.js doc/api/buffer.markdown doc/api/child_process.markdown doc/api/dns.markdown doc/api/tls.markdown doc/api/url.markdown lib/_stream_writable.js lib/assert.js lib/child_process.js lib/crypto.js lib/dgram.js lib/http.js lib/net.js lib/timers.js lib/tls.js src/node.cc src/node.h src/node.js src/node_crypto.cc src/node_version.h test/common.js test/simple/test-child-process-spawn-typeerror.js tools/certdata.txt
2 parents 1fad373 + fe20196 commit 0c7f6ca

File tree

377 files changed

+51635
-5077
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

377 files changed

+51635
-5077
lines changed

.gitignore

+1
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ node_g
1515
.benchmark_reports
1616
/.project
1717
/.cproject
18+
icu_config.gypi
1819

1920
/out
2021

AUTHORS

+11
Original file line numberDiff line numberDiff line change
@@ -569,3 +569,14 @@ Jackson Tian <[email protected]>
569569
Tristan Berger <[email protected]>
570570
Mathias Schreck <[email protected]>
571571
Steven R. Loomis <[email protected]>
572+
Matthew Fitzsimmons <[email protected]>
573+
574+
Emmanuel Odeke <[email protected]>
575+
Eric Mill <[email protected]>
576+
Brendan Ashworth <[email protected]>
577+
Alejandro Oviedo <[email protected]>
578+
579+
Saúl Ibarra Corretgé <[email protected]>
580+
silverwind <[email protected]>
581+
Steven R. Loomis <[email protected]>
582+
James M Snell <[email protected]>

ChangeLog

+55-2
Original file line numberDiff line numberDiff line change
@@ -787,7 +787,60 @@
787787
* console: `console.dir()` bypasses inspect() methods (Nathan Rajlich)
788788

789789

790-
2014.09.16, Version 0.10.32 (Stable)
790+
2014.12.22, Version 0.10.35 (Stable)
791+
792+
* tls: re-add 1024-bit SSL certs removed by f9456a2 (Chris Dickinson)
793+
794+
* timers: don't close interval timers when unrefd (Julien Gilli)
795+
796+
* timers: don't mutate unref list while iterating it (Julien Gilli)
797+
798+
799+
2014.12.17, Version 0.10.34 (Stable), 52795f8fcc2de77cf997e671ea58614e5e425dfe
800+
801+
* uv: update to v0.10.30
802+
803+
* zlib: upgrade to v1.2.8
804+
805+
* child_process: check execFile args is an array (Sam Roberts)
806+
807+
* child_process: check fork args is an array (Sam Roberts)
808+
809+
* crypto: update root certificates (Ben Noordhuis)
810+
811+
* domains: fix issues with abort on uncaught (Julien Gilli)
812+
813+
* timers: Avoid linear scan in _unrefActive. (Julien Gilli)
814+
815+
* timers: fix unref() memory leak (Trevor Norris)
816+
817+
* v8: add api for aborting on uncaught exception (Julien Gilli)
818+
819+
* debugger: fix when using "use strict" (Julien Gilli)
820+
821+
822+
2014.10.20, Version 0.10.33 (Stable), 8d045a30e95602b443eb259a5021d33feb4df079
823+
824+
* openssl: Update to 1.0.1j (Addressing multiple CVEs)
825+
826+
* uv: Update to v0.10.29
827+
828+
* child_process: properly support optional args (cjihrig)
829+
830+
* crypto: Disable autonegotiation for SSLv2/3 by default (Fedor Indutny,
831+
Timothy J Fontaine, Alexis Campailla)
832+
833+
This is a behavior change, by default we will not allow the negotiation to
834+
SSLv2 or SSLv3. If you want this behavior, run Node.js with either
835+
`--enable-ssl2` or `--enable-ssl3` respectively.
836+
837+
This does not change the behavior for users specifically requesting
838+
`SSLv2_method` or `SSLv3_method`. While this behavior is not advised, it is
839+
assumed you know what you're doing since you're specifically asking to use
840+
these methods.
841+
842+
843+
2014.09.16, Version 0.10.32 (Stable), 0fe0d121551593c23a565db8397f85f17bb0f00e
791844

792845
* npm: Update to 1.4.28
793846

@@ -839,7 +892,7 @@
839892

840893
* deps: backport 4ed5fde4f from v8 upstream (Fedor Indutny)
841894

842-
* deps: cherry-pick eca441b2 from OpenSSL (Fedor Indutny)
895+
*
843896

844897
* lib: remove and restructure calls to isNaN() (cjihrig)
845898

LICENSE

+4-5
Original file line numberDiff line numberDiff line change
@@ -294,9 +294,9 @@ maintained libraries. The externally maintained libraries used by Node are:
294294
- Zlib at deps/zlib. zlib's license follows:
295295
"""
296296
/* zlib.h -- interface of the 'zlib' general purpose compression library
297-
version 1.2.4, March 14th, 2010
297+
version 1.2.8, April 28th, 2013
298298

299-
Copyright (C) 1995-2010 Jean-loup Gailly and Mark Adler
299+
Copyright (C) 1995-2013 Jean-loup Gailly and Mark Adler
300300

301301
This software is provided 'as-is', without any express or implied
302302
warranty. In no event will the authors be held liable for any damages
@@ -314,9 +314,8 @@ maintained libraries. The externally maintained libraries used by Node are:
314314
misrepresented as being the original software.
315315
3. This notice may not be removed or altered from any source distribution.
316316

317-
Jean-loup Gailly
318-
Mark Adler
319-
317+
Jean-loup Gailly Mark Adler
318+
320319
*/
321320
"""
322321

Makefile

+11-2
Original file line numberDiff line numberDiff line change
@@ -190,6 +190,9 @@ website_files = \
190190

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

193+
doc-branch: NODE_DOC_VERSION = v$(shell $(PYTHON) tools/getnodeversion.py | cut -f1,2 -d.)
194+
doc-branch: doc
195+
193196
$(apidoc_dirs):
194197
mkdir -p $@
195198

@@ -203,10 +206,10 @@ out/doc/%: doc/%
203206
cp -r $< $@
204207

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

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

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

231+
doc-branch-upload: NODE_DOC_VERSION = v$(shell $(PYTHON) tools/getnodeversion.py | cut -f1,2 -d.)
232+
doc-branch-upload: doc-branch
233+
echo $(NODE_DOC_VERSION)
234+
rsync -r out/doc/api/ [email protected]:~/web/nodejs.org/$(NODE_DOC_VERSION)
235+
228236
docopen: out/doc/api/all.html
229237
-google-chrome out/doc/api/all.html
230238

@@ -233,6 +241,7 @@ docclean:
233241

234242
RAWVER=$(shell $(PYTHON) tools/getnodeversion.py)
235243
VERSION=v$(RAWVER)
244+
NODE_DOC_VERSION=$(VERSION)
236245
RELEASE=$(shell $(PYTHON) tools/getnodeisrelease.py)
237246
PLATFORM=$(shell uname | tr '[:upper:]' '[:lower:]')
238247
ifeq ($(findstring x86_64,$(shell uname -m)),x86_64)

configure

+15-9
Original file line numberDiff line numberDiff line change
@@ -272,11 +272,6 @@ parser.add_option('--with-perfctr',
272272
dest='with_perfctr',
273273
help='build with performance counters (default is true on Windows)')
274274

275-
parser.add_option('--with-sslv2',
276-
action='store_true',
277-
dest='with_sslv2',
278-
help='enable SSL v2')
279-
280275
parser.add_option('--without-dtrace',
281276
action='store_true',
282277
dest='without_dtrace',
@@ -308,6 +303,16 @@ parser.add_option('--without-ssl',
308303
dest='without_ssl',
309304
help='build without SSL')
310305

306+
parser.add_option('--without-ssl2',
307+
action='store_true',
308+
dest='ssl2',
309+
help='Disable SSL v2')
310+
311+
parser.add_option('--without-ssl3',
312+
action='store_true',
313+
dest='ssl3',
314+
help='Disable SSL v3')
315+
311316
parser.add_option('--xcode',
312317
action='store_true',
313318
dest='use_xcode',
@@ -668,11 +673,12 @@ def configure_openssl(o):
668673
if options.without_ssl:
669674
return
670675

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

679+
if options.ssl3:
680+
o['defines'] += ['OPENSSL_NO_SSL3=1']
681+
676682
if options.shared_openssl:
677683
(libs, cflags) = pkg_config('openssl') or ('-lssl -lcrypto', '')
678684

@@ -1035,4 +1041,4 @@ else:
10351041

10361042
gyp_args += args
10371043

1038-
subprocess.call(gyp_args)
1044+
sys.exit(subprocess.call(gyp_args))

deps/openssl/asm/x64-win32-masm/aes/aesni-x86_64.asm

+19-24
Original file line numberDiff line numberDiff line change
@@ -454,6 +454,12 @@ $L$SEH_begin_aesni_ecb_encrypt::
454454
mov r8,QWORD PTR[40+rsp]
455455

456456

457+
lea rsp,QWORD PTR[((-88))+rsp]
458+
movaps XMMWORD PTR[rsp],xmm6
459+
movaps XMMWORD PTR[16+rsp],xmm7
460+
movaps XMMWORD PTR[32+rsp],xmm8
461+
movaps XMMWORD PTR[48+rsp],xmm9
462+
$L$ecb_enc_body::
457463
and rdx,-16
458464
jz $L$ecb_ret
459465

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

754760
$L$ecb_ret::
761+
movaps xmm6,XMMWORD PTR[rsp]
762+
movaps xmm7,XMMWORD PTR[16+rsp]
763+
movaps xmm8,XMMWORD PTR[32+rsp]
764+
movaps xmm9,XMMWORD PTR[48+rsp]
765+
lea rsp,QWORD PTR[88+rsp]
766+
$L$ecb_enc_ret::
755767
mov rdi,QWORD PTR[8+rsp] ;WIN64 epilogue
756768
mov rsi,QWORD PTR[16+rsp]
757769
DB 0F3h,0C3h ;repret
@@ -2766,26 +2778,7 @@ ALIGN 64
27662778
EXTERN __imp_RtlVirtualUnwind:NEAR
27672779

27682780
ALIGN 16
2769-
ecb_se_handler PROC PRIVATE
2770-
push rsi
2771-
push rdi
2772-
push rbx
2773-
push rbp
2774-
push r12
2775-
push r13
2776-
push r14
2777-
push r15
2778-
pushfq
2779-
sub rsp,64
2780-
2781-
mov rax,QWORD PTR[152+r8]
2782-
2783-
jmp $L$common_seh_tail
2784-
ecb_se_handler ENDP
2785-
2786-
2787-
ALIGN 16
2788-
ccm64_se_handler PROC PRIVATE
2781+
ecb_ccm64_se_handler PROC PRIVATE
27892782
push rsi
27902783
push rdi
27912784
push rbx
@@ -2823,7 +2816,7 @@ ccm64_se_handler PROC PRIVATE
28232816
lea rax,QWORD PTR[88+rax]
28242817

28252818
jmp $L$common_seh_tail
2826-
ccm64_se_handler ENDP
2819+
ecb_ccm64_se_handler ENDP
28272820

28282821

28292822
ALIGN 16
@@ -3026,15 +3019,17 @@ ALIGN 4
30263019
ALIGN 8
30273020
$L$SEH_info_ecb::
30283021
DB 9,0,0,0
3029-
DD imagerel ecb_se_handler
3022+
DD imagerel ecb_ccm64_se_handler
3023+
DD imagerel $L$ecb_enc_body,imagerel $L$ecb_enc_ret
3024+
30303025
$L$SEH_info_ccm64_enc::
30313026
DB 9,0,0,0
3032-
DD imagerel ccm64_se_handler
3027+
DD imagerel ecb_ccm64_se_handler
30333028
DD imagerel $L$ccm64_enc_body,imagerel $L$ccm64_enc_ret
30343029

30353030
$L$SEH_info_ccm64_dec::
30363031
DB 9,0,0,0
3037-
DD imagerel ccm64_se_handler
3032+
DD imagerel ecb_ccm64_se_handler
30383033
DD imagerel $L$ccm64_dec_body,imagerel $L$ccm64_dec_ret
30393034

30403035
$L$SEH_info_ctr32::

deps/openssl/openssl/CHANGES

+51
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,57 @@
22
OpenSSL CHANGES
33
_______________
44

5+
Changes between 1.0.1i and 1.0.1j [15 Oct 2014]
6+
7+
*) SRTP Memory Leak.
8+
9+
A flaw in the DTLS SRTP extension parsing code allows an attacker, who
10+
sends a carefully crafted handshake message, to cause OpenSSL to fail
11+
to free up to 64k of memory causing a memory leak. This could be
12+
exploited in a Denial Of Service attack. This issue affects OpenSSL
13+
1.0.1 server implementations for both SSL/TLS and DTLS regardless of
14+
whether SRTP is used or configured. Implementations of OpenSSL that
15+
have been compiled with OPENSSL_NO_SRTP defined are not affected.
16+
17+
The fix was developed by the OpenSSL team.
18+
(CVE-2014-3513)
19+
[OpenSSL team]
20+
21+
*) Session Ticket Memory Leak.
22+
23+
When an OpenSSL SSL/TLS/DTLS server receives a session ticket the
24+
integrity of that ticket is first verified. In the event of a session
25+
ticket integrity check failing, OpenSSL will fail to free memory
26+
causing a memory leak. By sending a large number of invalid session
27+
tickets an attacker could exploit this issue in a Denial Of Service
28+
attack.
29+
(CVE-2014-3567)
30+
[Steve Henson]
31+
32+
*) Build option no-ssl3 is incomplete.
33+
34+
When OpenSSL is configured with "no-ssl3" as a build option, servers
35+
could accept and complete a SSL 3.0 handshake, and clients could be
36+
configured to send them.
37+
(CVE-2014-3568)
38+
[Akamai and the OpenSSL team]
39+
40+
*) Add support for TLS_FALLBACK_SCSV.
41+
Client applications doing fallback retries should call
42+
SSL_set_mode(s, SSL_MODE_SEND_FALLBACK_SCSV).
43+
(CVE-2014-3566)
44+
[Adam Langley, Bodo Moeller]
45+
46+
*) Add additional DigestInfo checks.
47+
48+
Reencode DigestInto in DER and check against the original when
49+
verifying RSA signature: this will reject any improperly encoded
50+
DigestInfo structures.
51+
52+
Note: this is a precautionary measure and no attacks are currently known.
53+
54+
[Steve Henson]
55+
556
Changes between 1.0.1h and 1.0.1i [6 Aug 2014]
657

758
*) Fix SRP buffer overrun vulnerability. Invalid parameters passed to the

deps/openssl/openssl/Configure

+6
Original file line numberDiff line numberDiff line change
@@ -1767,6 +1767,9 @@ open(OUT,'>crypto/opensslconf.h.new') || die "unable to create crypto/opensslcon
17671767
print OUT "/* opensslconf.h */\n";
17681768
print OUT "/* WARNING: Generated automatically from opensslconf.h.in by Configure. */\n\n";
17691769

1770+
print OUT "#ifdef __cplusplus\n";
1771+
print OUT "extern \"C\" {\n";
1772+
print OUT "#endif\n";
17701773
print OUT "/* OpenSSL was configured with the following options: */\n";
17711774
my $openssl_algorithm_defines_trans = $openssl_algorithm_defines;
17721775
$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;
@@ -1871,6 +1874,9 @@ while (<IN>)
18711874
{ print OUT $_; }
18721875
}
18731876
close(IN);
1877+
print OUT "#ifdef __cplusplus\n";
1878+
print OUT "}\n";
1879+
print OUT "#endif\n";
18741880
close(OUT);
18751881
rename("crypto/opensslconf.h","crypto/opensslconf.h.bak") || die "unable to rename crypto/opensslconf.h\n" if -e "crypto/opensslconf.h";
18761882
rename("crypto/opensslconf.h.new","crypto/opensslconf.h") || die "unable to rename crypto/opensslconf.h.new\n";

deps/openssl/openssl/Makefile

+1-1
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
## Makefile for OpenSSL
55
##
66

7-
VERSION=1.0.1i
7+
VERSION=1.0.1j
88
MAJOR=1
99
MINOR=0.1
1010
SHLIB_VERSION_NUMBER=1.0.0

deps/openssl/openssl/Makefile.bak

+1-1
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
## Makefile for OpenSSL
55
##
66

7-
VERSION=1.0.1i-dev
7+
VERSION=1.0.1j-dev
88
MAJOR=1
99
MINOR=0.1
1010
SHLIB_VERSION_NUMBER=1.0.0

0 commit comments

Comments
 (0)