Permalink
Switch branches/tags
Commits on Apr 23, 2013
  1. 2013.04.23, Version 0.10.5 (Stable)

    * uv: Upgrade to 0.10.5 (isaacs)
    
    * build: added support for Visual Studio 2012 (Miroslav Bajtoš)
    
    * http: Don't try to destroy nonexistent sockets (isaacs)
    
    * crypto: LazyTransform on properties, not methods (isaacs)
    
    * assert: put info in err.message, not err.name (Ryan Doenges)
    
    * dgram: fix no address bind() (Ben Noordhuis)
    
    * handle_wrap: fix NULL pointer dereference (Ben Noordhuis)
    
    * os: fix unlikely buffer overflow in os.type() (Ben Noordhuis)
    
    * stream: Fix unshift() race conditions (isaacs)
    isaacs committed Apr 23, 2013
  2. uv: Upgrade to 0.10.5

    isaacs committed Apr 23, 2013
Commits on Apr 22, 2013
  1. os: Fix uname() error handling on sunos

    The uname function can return any non-negative int to indicate success.
    
    Strange, but that's how it is documented.  This also fixes a similar
    buffer overflow in the even more unlikely event that info.release is
    > 255 characters, similar to how 78c5de5 did for info.sysname.
    isaacs committed Apr 22, 2013
  2. http: Don't try to destroy nonexistent sockets

    Fixes #3740
    
    In the case of pipelined requests, you can have a situation where
    the socket gets destroyed via one req/res object, but then trying
    to destroy *another* req/res on the same socket will cause it to
    call undefined.destroy(), since it was already removed from that
    message.
    
    Add a guard to OutgoingMessage.destroy and IncomingMessage.destroy
    to prevent this error.
    isaacs committed Apr 22, 2013
  3. test: fix dgram-bind-default-address on osx

    Allow the IPv4-mapped-as-IPv6 style address.
    isaacs committed Apr 19, 2013
Commits on Apr 21, 2013
  1. crypto: LazyTransform on properties, not methods

    It needs to apply the Transform class when the _readableState,
    _writableState, or _transformState properties are accessed,
    otherwise things like setEncoding and on('data') don't work
    properly.
    
    Also, the methods wrappers are no longer needed, since they're only
    problematic because they access the undefined properties.
    isaacs committed with indutny Apr 8, 2013
Commits on Apr 19, 2013
  1. blog: Post about 0.11.1

    isaacs committed Apr 19, 2013
  2. blog: Post about 0.10.4

    isaacs committed Apr 19, 2013
Commits on Apr 18, 2013
  1. assert: put info in err.message, not err.name

    4716dc6 made assert.equal() and related functions work better by
    generating a better toString() from the expected, actual, and operator
    values passed to fail(). Unfortunately, this was accomplished by putting
    the generated message into the error's `name` property. When you passed
    in a custom error message, the error would put the custom error into
    `name` *and* `message`, resulting in helpful string representations like
    "AssertionError: Oh no: Oh no".
    
    This commit resolves that issue by storing the generated message in the
    `message` property while leaving the error's name alone and adding
    a regression test so that this doesn't pop back up later.
    
    Closes #5292.
    hackedy committed with isaacs Apr 14, 2013
Commits on Apr 17, 2013
  1. crypto: fix return Local Handle w/o scope.Close()

    A new String was being created and returned, but was not sent through
    the scope.Close(), which caused it to be cleaned up before being
    returned.
    trevnorris committed with bnoordhuis Apr 17, 2013
  2. dgram: fix no address bind()

    I broke dgram.Socket#bind(port, cb) almost a year ago in 332fea5 but
    it wasn't until today that someone complained and none of the tests
    caught it because they all either specify the address or omit the
    callback.
    
    Anyway, now it works again and does what you expect: it binds the
    socket to the "any" address ("0.0.0.0" for IPv4 and "::" for IPv6.)
    bnoordhuis committed Apr 17, 2013
  3. test: make stdout-close-unref work in test runner

    process.stdout isn't fully initialized yet by the time the test starts
    when invoked with `python tools/test.py`. Use process.stdin instead and
    force initialization with process.stdin.resume().
    bnoordhuis committed Apr 17, 2013
Commits on Apr 16, 2013
  1. docs: update path.join() example for v0.10

    The current example shows the behavior of v0.8. In v0.10 arguments
    to path.join() must be strings; otherwise, an exception is thrown.
    kellygerber committed with bnoordhuis Apr 9, 2013
  2. handle_wrap: fix NULL pointer dereference

    Fix a NULL pointer dereference in src/handle_wrap.cc which is really a
    use-after-close bug.
    
    The test checks that unref() after close() works on process.stdout but
    this bug affects everything that derives from HandleWrap. I discovered
    it because child processes would sometimes quit for no reason (that is,
    no reason until I turned on core dumps.)
    bnoordhuis committed Apr 16, 2013
  3. test: preserve process.env after test-init exec

    When LD_LIBRARY_PATH is overriden for custom builds we need to preserve
    it for child processes. To be sure we preserve whole environment of
    parent process and just add TEST_INIT variable to it.
    Stanislav Ochotnicky committed with bnoordhuis Apr 16, 2013
  4. test: preserve process.env in forked child_process

    When LD_LIBRARY_PATH is overriden for custom builds we need to preserve
    it for forked process. There are possibly other environment variables
    that could cause test failures so we preserve whole environment of
    parent process.
    Stanislav Ochotnicky committed with bnoordhuis Apr 10, 2013
Commits on Apr 15, 2013
  1. os: unbreak windows build

    Windows doesn't have MAXHOSTNAMELEN. Introduced in afbadde.
    bnoordhuis committed Apr 15, 2013
  2. os: handle 256 character hostnames

    Fix a (rather academic) buffer overflow. MAXHOSTNAMELEN is 256 on most
    platforms, which means the buffer wasn't big enough to hold the
    trailing nul byte on a system with a maximum length hostname.
    bnoordhuis committed Apr 15, 2013
  3. os: fix unlikely buffer overflow in os.type()

    * Fix a buffer overflow that happens iff strlen(info.sysname) > 255.
    * Check the return value of uname().
    bnoordhuis committed Apr 15, 2013
Commits on Apr 12, 2013
Commits on Apr 11, 2013
  1. stream: Fix unshift() race conditions

    Fix #5272
    
    The consumption of a readable stream is a dance with 3 partners.
    
    1. The specific stream Author (A)
    2. The Stream Base class (B), and
    3. The Consumer of the stream (C)
    
    When B calls the _read() method that A implements, it sets a 'reading'
    flag, so that parallel calls to _read() can be avoided.  When A calls
    stream.push(), B knows that it's safe to start calling _read() again.
    
    If the consumer C is some kind of parser that wants in some cases to
    pass the source stream off to some other party, but not before "putting
    back" some bit of previously consumed data (as in the case of Node's
    websocket http upgrade implementation).  So, stream.unshift() will
    generally *never* be called by A, but *only* called by C.
    
    Prior to this patch, stream.unshift() *also* unset the state.reading
    flag, meaning that C could indicate the end of a read, and B would
    dutifully fire off another _read() call to A.  This is inappropriate.
    In the case of fs streams, and other variably-laggy streams that don't
    tolerate overlapped _read() calls, this causes big problems.
    
    Also, calling stream.shift() after the 'end' event did not raise any
    kind of error, but would cause very strange behavior indeed.  Calling it
    after the EOF chunk was seen, but before the 'end' event was fired would
    also cause weird behavior, and could lead to data being lost, since it
    would not emit another 'readable' event.
    
    This change makes it so that:
    
    1. stream.unshift() does *not* set state.reading = false
    2. stream.unshift() is allowed up until the 'end' event.
    3. unshifting onto a EOF-encountered and zero-length (but not yet
    end-emitted) stream will defer the 'end' event until the new data is
    consumed.
    4. pushing onto a EOF-encountered stream is now an error.
    
    So, if you read(), you have that single tick to safely unshift() data
    back into the stream, even if the null chunk was pushed, and the length
    was 0.
    isaacs committed Apr 11, 2013
  2. Now working on v0.10.5

    isaacs committed Apr 11, 2013
  3. lint

    isaacs committed Apr 11, 2013
  4. 2013.04.11, Version 0.10.4 (Stable)

    * uv: Upgrade to 0.10.4
    
    * npm: Upgrade to 1.2.18
    
    * v8: Avoid excessive memory growth in JSON.parse (Fedor Indutny)
    
    * child_process, cluster: fix O(n*m) scan of cmd string (Ben Noordhuis)
    
    * net: fix socket.bytesWritten Buffers support (Fedor Indutny)
    
    * buffer: fix offset checks (Łukasz Walukiewicz)
    
    * stream: call write cb before finish event (isaacs)
    
    * http: Support write(data, 'hex') (isaacs)
    
    * crypto: dh secret should be left-padded (Fedor Indutny)
    
    * process: expose NODE_MODULE_VERSION in process.versions (Rod Vagg)
    
    * crypto: fix constructor call in crypto streams (Andreas Madsen)
    
    * net: account for encoding in .byteLength (Fedor Indutny)
    
    * net: fix buffer iteration in bytesWritten (Fedor Indutny)
    
    * crypto: zero is not an error if writing 0 bytes (Fedor Indutny)
    
    * tls: Re-enable check of CN-ID in cert verification (Tobias Müllerleile)
    isaacs committed Apr 11, 2013
  5. npm: Upgrade to 1.2.18

    isaacs committed Apr 11, 2013
  6. uv: Upgrade to v0.10.4

    isaacs committed Apr 11, 2013