Node.js JavaScript runtime 🐢🚀
 
 
 
 
 
 
Go to file
Ben Noordhuis c492d43f48 tls: fix segfault in pummel/test-tls-ci-reneg-attack
Commit 4e5fe2d changed the way how process.nextTick() works:

    process.nextTick(function foo() {
      process.nextTick(function bar() {
        // ...
      });
    });

Before said commit, foo() and bar() used to run on separate event loop ticks
but that is no longer the case.

However, that's exactly the behavior that the TLS renegotiation attack guard
relies on. It gets called by OpenSSL and needs to defer the 'error' event to a
later tick because the default action is to destroy the TLS context - the same
context that OpenSSL currently operates on.

When things change underneath your feet, bad things happen and OpenSSL is no
exception. Ergo, use setImmediate() instead of process.nextTick() to ensure
that the 'error' event is actually emitted at a later tick.

Fixes #3840.
2012-08-13 18:10:26 +02:00
benchmark benchmark: add single process tls connection benchmark 2012-07-14 01:43:34 +02:00
deps uv: upgrade to 41b1265 2012-08-07 01:58:00 +02:00
doc timers: implement setImmediate 2012-08-12 00:07:22 +02:00
lib tls: fix segfault in pummel/test-tls-ci-reneg-attack 2012-08-13 18:10:26 +02:00
src timers: implement setImmediate 2012-08-12 00:07:22 +02:00
test timers: make unref'd timeouts execute in a domain 2012-08-12 01:15:08 +02:00
tools tools: remove "addon.gypi" and "gyp_addon" 2012-08-12 14:49:44 -07:00
.gitattributes Explicitly disable cr/lf conversion for test fixtures 2011-08-10 19:59:37 +02:00
.gitignore .gitignore: Don't ignore node_modules (breaks npm) 2012-07-10 16:16:43 -07:00
.mailmap Add a .mailmap file, and clean up AUTHORS somewhat 2012-07-09 16:55:09 +02:00
.travis.yml test: add `.travis.yml` for testing on Travis CI 2011-12-05 16:50:55 -08:00
AUTHORS Merge remote-tracking branch 'ry/v0.8' 2012-08-03 16:23:14 -07:00
BSDmakefile Tell BSD users to run `gmake` instead. 2011-07-11 14:17:23 +02:00
ChangeLog Merge remote-tracking branch 'ry/v0.8' 2012-08-03 16:23:14 -07:00
LICENSE Update npm's license 2012-06-18 18:08:45 -07:00
Makefile Makefile: DRY js lint 2012-08-05 23:40:39 +02:00
README.md doc: build requires GNU make 3.81+ 2012-07-18 14:23:39 +02:00
common.gypi build: unbreak ustack on smartos 2012-07-19 18:20:34 +02:00
configure build: improve armv7 / hard-float detection 2012-07-26 23:38:34 +02:00
node.gyp dns: don't rely on libuv for c-ares integration 2012-08-07 01:57:50 +02:00
vcbuild.bat vcbuild.bat: add duplicate arg-ok label to work around cmd.exe bug 2012-06-14 00:56:43 +02:00

README.md

Evented I/O for V8 javascript. Build Status

To build:

Unix/Macintosh. Requires python 2.6 or 2.7 and GNU make 3.81 or newer:

./configure
make
make install

Windows:

vcbuild.bat

To run the tests:

Unix/Macintosh:

make test

Windows:

vcbuild.bat test

To build the documentation:

make doc

To read the documentation:

man doc/node.1

Resources for Newcomers