Jan Krems
d89f9f82b0
inspector: allow require in Runtime.evaluate
...
Some parts were written by Timothy Gu <timothygu99@gmail.com >.
PR-URL: https://github.com/nodejs/node/pull/8837
Reviewed-By: Jeremiah Senkpiel <fishrock123@rocketmail.com >
Reviewed-By: James M Snell <jasnell@gmail.com >
Reviewed-By: Aleksei Koziatinskii <ak239spb@gmail.com >
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl >
Reviewed-By: Timothy Gu <timothygu99@gmail.com >
2017-08-10 18:19:45 +02:00
cjihrig
08b662a8e9
Working on v8.3.1
...
PR-URL: https://github.com/nodejs/node/pull/14594
Reviewed-By: Matteo Collina <matteo.collina@gmail.com >
Reviewed-By: Refael Ackermann <refack@gmail.com >
Reviewed-By: James M Snell <jasnell@gmail.com >
Reviewed-By: Myles Borins <myles.borins@gmail.com >
Reviewed-By: Evan Lucas <evanlucas@me.com >
2017-08-09 21:41:36 -04:00
Anna Henningsen
fb88fa19f1
2017-08-09, Version 8.3.0 (Current)
...
V8 6.0:
The V8 engine has been upgraded to version 6.0, which has a significantly
changed performance profile.
[#14574 ](https://github.com/nodejs/node/pull/14574 )
More detailed information on performance differences can be found at
https://medium.com/the-node-js-collection/get-ready-a-new-v8-is-coming-node-js-performance-is-changing-46a63d6da4de
Other notable changes:
* **DNS**
* Independent DNS resolver instances are supported now, with support for
cancelling the corresponding requests.
[#14518 ](https://github.com/nodejs/node/pull/14518 )
* **N-API**
* Multiple N-API functions for error handling have been changed to support
assigning error codes.
[#13988 ](https://github.com/nodejs/node/pull/13988 )
* **REPL**
* Autocompletion support for `require()` has been improved.
[#14409 ](https://github.com/nodejs/node/pull/14409 )
* **Utilities**
* The WHATWG Encoding Standard (`TextDecoder` and `TextEncoder`) has
been implemented as an experimental feature.
[#13644 ](https://github.com/nodejs/node/pull/13644 )
* **Added new collaborators**
* [XadillaX](https://github.com/XadillaX ) – Khaidi Chu
* [gabrielschulhof](https://github.com/gabrielschulhof ) – Gabriel Schulhof
2017-08-09 20:12:40 +02:00
Anna Henningsen
a8132943c5
zlib: fix crash when initializing failed
...
Unset `mode_` when initializing the zlib stream failed, so that
we don’t try to call the zlib end functions (`deflateEnd()` etc.)
when cleaning up in `ZCtx::Close()`.
Fixes: https://github.com/nodejs/node/issues/14178
Ref: https://github.com/nodejs/node/pull/13098
PR-URL: https://github.com/nodejs/node/pull/14666
Reviewed-By: Refael Ackermann <refack@gmail.com >
Reviewed-By: Colin Ihrig <cjihrig@gmail.com >
Reviewed-By: Alexey Orlenko <eaglexrlnk@gmail.com >
2017-08-09 20:07:43 +02:00
Tobias Nießen
264e4345f8
src: reuse 'ondone' string in node_crypto.cc
...
PR-URL: https://github.com/nodejs/node/pull/14587
Reviewed-By: Anna Henningsen <anna@addaleax.net >
2017-08-07 15:17:39 +02:00
Anna Henningsen
6ae6469d4a
src: use existing strings over creating new ones
...
This is a very very minor change.
PR-URL: https://github.com/nodejs/node/pull/14587
Reviewed-By: James M Snell <jasnell@gmail.com >
Reviewed-By: Timothy Gu <timothygu99@gmail.com >
Reviewed-By: Brian White <mscdex@mscdex.net >
Reviewed-By: Colin Ihrig <cjihrig@gmail.com >
Reviewed-By: Tobias Nießen <tniessen@tnie.de >
2017-08-07 15:17:38 +02:00
Ben Noordhuis
eb068a0526
src: remove unused Connection::ClearError()
...
PR-URL: https://github.com/nodejs/node/pull/14514
Reviewed-By: Anna Henningsen <anna@addaleax.net >
Reviewed-By: Colin Ihrig <cjihrig@gmail.com >
Reviewed-By: James M Snell <jasnell@gmail.com >
Reviewed-By: Jason Ginchereau <jasongin@microsoft.com >
Reviewed-By: Refael Ackermann <refack@gmail.com >
Reviewed-By: Richard Lau <riclau@uk.ibm.com >
Reviewed-By: Timothy Gu <timothygu99@gmail.com >
Reviewed-By: Tobias Nie�en <tniessen@tnie.de >
2017-08-07 15:17:37 +02:00
Ben Noordhuis
4b01d8cac3
src: replace assert with CHECK_LE in node_api.cc
...
PR-URL: https://github.com/nodejs/node/pull/14514
Reviewed-By: Anna Henningsen <anna@addaleax.net >
Reviewed-By: Colin Ihrig <cjihrig@gmail.com >
Reviewed-By: James M Snell <jasnell@gmail.com >
Reviewed-By: Jason Ginchereau <jasongin@microsoft.com >
Reviewed-By: Refael Ackermann <refack@gmail.com >
Reviewed-By: Richard Lau <riclau@uk.ibm.com >
Reviewed-By: Timothy Gu <timothygu99@gmail.com >
Reviewed-By: Tobias Nie�en <tniessen@tnie.de >
2017-08-07 15:17:36 +02:00
Anna Henningsen
3c6b5e5fac
src: properly manage timer in cares ChannelWrap
...
This fixes a bug introduced in 727b2911ec
where code managing the `uv_timer_t` for a `ChannelWrap` instance was
left unchanged, when it should have changed the lifetime of the handle
to being tied to the `ChannelWrap` instance’s lifetime.
Fixes: https://github.com/nodejs/node/issues/14599
Ref: https://github.com/nodejs/node/pull/14518
PR-URL: https://github.com/nodejs/node/pull/14634
Reviewed-By: Refael Ackermann <refack@gmail.com >
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl >
Reviewed-By: Fedor Indutny <fedor.indutny@gmail.com >
Reviewed-By: James M Snell <jasnell@gmail.com >
Reviewed-By: Khaidi Chu <i@2333.moe >
Reviewed-By: Tobias Nießen <tniessen@tnie.de >
2017-08-07 15:17:35 +02:00
jeyanthinath
c0f0c38535
build: enable C++ linting for src/*/*
...
Fixes: https://github.com/nodejs/node/issues/14490
PR-URL: https://github.com/nodejs/node/pull/14497
Reviewed-By: Timothy Gu <timothygu99@gmail.com >
Reviewed-By: Khaidi Chu <i@2333.moe >
Reviewed-By: Refael Ackermann <refack@gmail.com >
2017-08-07 15:17:34 +02:00
Timothy Gu
8c5cd1439e
src: avoid dereference without existence check
...
Currently the URL API is only used from the JS binding, which always
initializes `base` regardless of `has_base`. Therefore, there is no
actual security risk right now, but would be had we made other C++ parts
of Node.js use this API.
An earlier version of this patch was created by Bradley Farias
<bradley.meck@gmail.com >.
PR-URL: https://github.com/nodejs/node/pull/14591
Refs: https://github.com/nodejs/node/pull/14369#discussion_r128767221
Reviewed-By: James M Snell <jasnell@gmail.com >
Reviewed-By: Colin Ihrig <cjihrig@gmail.com >
Reviewed-By: Tobias Nießen <tniessen@tnie.de >
2017-08-07 15:17:34 +02:00
Anna Henningsen
8a3bc874fa
src: fix process.abort() interaction with V8
...
Since V8 5.9 V8 installs a default signal handler for some signals
when creating a default platform instance that prints a stack trace.
However, Node already does the same thing, so it would seem like the
two different stack traces would be printed; also, the V8 handler
would lead to a `SIGSEGV` under some circumstances, rather than
letting the abort continue normally.
Resolve this by disabling V8’s signal handler by default.
Backport-PR-URL: https://github.com/nodejs/node/pull/14574
Backport-Reviewed-By: Anna Henningsen <anna@addaleax.net >
Backport-Reviewed-By: Refael Ackermann <refack@gmail.com >
PR-URL: https://github.com/nodejs/node/pull/13985
Fixes: https://github.com/nodejs/node/issues/13865
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl >
Reviewed-By: Colin Ihrig <cjihrig@gmail.com >
Reviewed-By: James M Snell <jasnell@gmail.com >
2017-08-02 12:22:25 +02:00
Michaël Zasso
997204a213
src: fix new V8 compiler warnings
...
Backport-PR-URL: https://github.com/nodejs/node/pull/14574
Backport-Reviewed-By: Anna Henningsen <anna@addaleax.net >
Backport-Reviewed-By: Refael Ackermann <refack@gmail.com >
PR-URL: https://github.com/nodejs/node/pull/14004
Reviewed-By: Anna Henningsen <anna@addaleax.net >
Reviewed-By: Anna Henningsen <anna@addaleax.net >
Reviewed-By: Franziska Hinkelmann <franziska.hinkelmann@gmail.com >
Reviewed-By: James M Snell <jasnell@gmail.com >
Reviewed-By: Matteo Collina <matteo.collina@gmail.com >
Reviewed-By: Colin Ihrig <cjihrig@gmail.com >
2017-08-02 12:21:57 +02:00
Tobias Nießen
fa3aa2e1f7
src: return MaybeLocal in AsyncWrap::MakeCallback
...
PR-URL: https://github.com/nodejs/node/pull/14549
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl >
Reviewed-By: James M Snell <jasnell@gmail.com >
Reviewed-By: Anna Henningsen <anna@addaleax.net >
Reviewed-By: Timothy Gu <timothygu99@gmail.com >
Reviewed-By: Colin Ihrig <cjihrig@gmail.com >
2017-08-02 12:07:48 +02:00
Tobias Nießen
51c1afafa6
crypto: change segmentation faults to CHECKs
...
PR-URL: https://github.com/nodejs/node/pull/14548
Fixes: https://github.com/nodejs/node/issues/14519
Reviewed-By: Anna Henningsen <anna@addaleax.net >
Reviewed-By: James M Snell <jasnell@gmail.com >
Reviewed-By: Timothy Gu <timothygu99@gmail.com >
Reviewed-By: Colin Ihrig <cjihrig@gmail.com >
2017-08-02 12:03:04 +02:00
Jimmy Thomson
87e108059b
build: fix build without icu
...
When building without ICU (`vcbuild.bat intl-none`) the unicode/ucnv.h
header is not available, which causes compilation errors.
PR-URL: https://github.com/nodejs/node/pull/14533
Reviewed-By: Timothy Gu <timothygu99@gmail.com >
Reviewed-By: Refael Ackermann <refack@gmail.com >
Reviewed-By: James M Snell <jasnell@gmail.com >
2017-08-02 12:02:57 +02:00
James M Snell
9a3fc10dd4
util: implement WHATWG Encoding Standard API
...
Provide an (initially experimental) implementation of the WHATWG Encoding
Standard API (`TextDecoder` and `TextEncoder`). The is the same API
implemented on the browser side.
By default, with small-icu, only the UTF-8, UTF-16le and UTF-16be decoders
are supported. With full-icu enabled, every encoding other than iso-8859-16
is supported.
This provides a basic test, but does not include the full web platform
tests. Note: many of the web platform tests for this would fail by default
because we ship with small-icu by default.
A process warning will be emitted on first use to indicate that the
API is still experimental. No runtime flag is required to use the
feature.
Backport-PR-URL: https://github.com/nodejs/node/pull/14585
Backport-Reviewed-By: Anna Henningsen <anna@addaleax.net >
Refs: https://encoding.spec.whatwg.org/
PR-URL: https://github.com/nodejs/node/pull/13644
Reviewed-By: Timothy Gu <timothygu99@gmail.com >
Reviewed-By: Matteo Collina <matteo.collina@gmail.com >
2017-08-02 11:52:23 +02:00
Anna Henningsen
0982810208
dns: add channel.cancel()
...
This can be used to implement custom timeouts.
Fixes: https://github.com/nodejs/node/issues/7231
PR-URL: https://github.com/nodejs/node/pull/14518
Reviewed-By: James M Snell <jasnell@gmail.com >
Reviewed-By: Colin Ihrig <cjihrig@gmail.com >
Reviewed-By: Tobias Nießen <tniessen@tnie.de >
2017-08-01 20:26:49 +02:00
Anna Henningsen
106a23bd27
src,dns: refactor cares_wrap to avoid global state
...
PR-URL: https://github.com/nodejs/node/pull/14518
Reviewed-By: James M Snell <jasnell@gmail.com >
Reviewed-By: Colin Ihrig <cjihrig@gmail.com >
Reviewed-By: Tobias Nießen <tniessen@tnie.de >
2017-08-01 20:26:47 +02:00
Franziska Hinkelmann
d90a5e0069
src: replace deprecated ForceSet() method
...
ForceSet() is marked to be deprecated. Replacing
it with DefineOwnProperty().
PR-URL: https://github.com/nodejs/node/pull/14450
Reviewed-By: James M Snell <jasnell@gmail.com >
Reviewed-By: Anna Henningsen <anna@addaleax.net >
Reviewed-By: Colin Ihrig <cjihrig@gmail.com >
Reviewed-By: Tobias Nießen <tniessen@tnie.de >
2017-08-01 18:45:06 +02:00
Jiajie Hu
2c364ab291
buffer: remove a wrongly added attribute specifier
...
It doesn't seem to make much sense to have the mentioned typedef
declaration equipped with NODE_EXTERN. In fact, when compiling with GCC,
an attribute specifier like __attribute__((visibility("default"))) in
such a typedef declaration will cause the following warning message:
warning: ‘visibility’ attribute ignored [-Wattributes]
The issue goes unnoticed because NODE_EXTERN is defined as nothing for
GCC builds, but for correctness it's better to not specify it here at
all.
PR-URL: https://github.com/nodejs/node/pull/14466
Reviewed-By: Refael Ackermann <refack@gmail.com >
Reviewed-By: Trevor Norris <trev.norris@gmail.com >
2017-08-01 18:44:49 +02:00
Ben Noordhuis
eb7faf6734
src: replace ASSERT with CHECK
...
Builds always have asserts enabled so there is no point distinguishing
between debug-only checks and run-time checks. Replace calls to ASSERT
and friends with their CHECK counterparts.
Fixes: https://github.com/nodejs/node/issues/14461
PR-URL: https://github.com/nodejs/node/pull/14474
Reviewed-By: Colin Ihrig <cjihrig@gmail.com >
Reviewed-By: James M Snell <jasnell@gmail.com >
Reviewed-By: Michaël Zasso <targos@protonmail.com >
Reviewed-By: Nikolai Vavilov <vvnicholas@gmail.com >
Reviewed-By: XadillaX <admin@xcoder.in >
2017-07-27 23:48:54 +02:00
Shivanth MP
60e0f2bb0d
n-api: add support for DataView
...
Basic support for Dataview is added in this commit. This is achieved
by using three functions, napi_create_dataview(), napi_is_dataview()
and napi_get_dataview_info().
PR-URL: https://github.com/nodejs/node/pull/14382
Fixes: https://github.com/nodejs/node/issues/13926
Reviewed-By: Anna Henningsen <anna@addaleax.net >
Reviewed-By: Timothy Gu <timothygu99@gmail.com >
Reviewed-By: Colin Ihrig <cjihrig@gmail.com >
2017-07-27 23:48:50 +02:00
Gabriel Schulhof
b849b3d223
n-api: re-use napi_env between modules
...
Store the `napi_env` on the global object at a private key. This gives
us one `napi_env` per context.
Refs: https://github.com/nodejs/node/issues/14367
PR-URL: https://github.com/nodejs/node/pull/14217
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl >
Reviewed-By: Timothy Gu <timothygu99@gmail.com >
2017-07-27 23:48:49 +02:00
Eugene Ostroukhov
71cb1cdf69
inspector: implement V8Inspector timer
...
This timer is currently only used by a profiler. Note that the timer
invocation will not interrupt JavaScript code.
Fixes: https://github.com/nodejs/node/issues/11401
PR-URL: https://github.com/nodejs/node/pull/14346
Reviewed-By: Anna Henningsen <anna@addaleax.net >
Reviewed-By: Colin Ihrig <cjihrig@gmail.com >
Reviewed-By: James M Snell <jasnell@gmail.com >
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl >
2017-07-27 23:48:49 +02:00
Eugene Ostroukhov
4836f3b9b9
inspector: send messages after the Node is done
...
Fixes: https://github.com/nodejs/node/issues/14432
PR-URL: https://github.com/nodejs/node/pull/14463
Reviewed-By: Colin Ihrig <cjihrig@gmail.com >
Reviewed-By: James M Snell <jasnell@gmail.com >
2017-07-27 23:48:47 +02:00
Anna Henningsen
50447e837b
http: reset stream to unconsumed in unconsume()
...
Reset the underlying socket of an HTTP stream to be marked as
unconsume after the HTTP parser no longer owns it.
Fixes: https://github.com/nodejs/node/issues/14407
PR-URL: https://github.com/nodejs/node/pull/14410
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl >
Reviewed-By: James M Snell <jasnell@gmail.com >
Reviewed-By: Colin Ihrig <cjihrig@gmail.com >
Reviewed-By: Colin Ihrig <cjihrig@gmail.com >
Reviewed-By: Luigi Pinca <luigipinca@gmail.com >
2017-07-27 23:48:44 +02:00
Kyle Farnung
6078dea35d
n-api: directly create Local from Persistent
...
The `v8::PersistentBase<T>.Get` method didn't exist in node 4 and it's
just a helper which creates a new `v8::Local` from the given object.
PR-URL: https://github.com/nodejs/node/pull/14211
Reviewed-By: Timothy Gu <timothygu99@gmail.com >
Reviewed-By: Colin Ihrig <cjihrig@gmail.com >
Reviewed-By: Anna Henningsen <anna@addaleax.net >
Reviewed-By: James M Snell <jasnell@gmail.com >
Reviewed-By: Michael Dawson <michael_dawson@ca.ibm.com >
Reviewed-By: Jason Ginchereau <jasongin@microsoft.com >
2017-07-27 23:47:02 +02:00
Michael Dawson
f2efdc880f
n-api: add code parameter to error helpers
...
In support of the effort to add error codes to all errors
generated by Node.js, add an optional code parameter to the
helper functions used to throw/create errors in N-API.
Backport-PR-URL: https://github.com/nodejs/node/pull/14453
Backport-Reviewed-By: James M Snell <jasnell@gmail.com >
PR-URL: https://github.com/nodejs/node/pull/13988
Fixes: https://github.com/nodejs/node/issues/13933
Reviewed-By: James M Snell <jasnell@gmail.com >
Reviewed-By: Anna Henningsen <anna@addaleax.net >
2017-07-27 22:20:50 +02:00
Anna Henningsen
fa134dd60c
n-api: add fast paths for integer getters
...
Ref: https://github.com/nodejs/node/issues/14379
PR-URL: https://github.com/nodejs/node/pull/14393
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl >
Reviewed-By: James M Snell <jasnell@gmail.com >
Reviewed-By: Timothy Gu <timothygu99@gmail.com >
Reviewed-By: Colin Ihrig <cjihrig@gmail.com >
Reviewed-By: Jason Ginchereau <jasongin@microsoft.com >
2017-07-24 17:45:31 +02:00
Jeremiah Senkpiel
9e9e1b4d6f
Working on v8.2.2
...
PR-URL: https://github.com/nodejs/node/pull/14399
2017-07-20 18:14:52 -04:00
Jeremiah Senkpiel
7e463500b2
2017-07-20, Version 8.2.1 (Current)
...
Notable changes
* http: Writes no longer abort if the Socket is missing.
* process, async_hooks: Avoid problems when triggerAsyncId is undefined.
* zlib: Streams no longer attempt to process data when destroyed.
PR-URL: https://github.com/nodejs/node/pull/14399
2017-07-20 16:53:52 -04:00
Jeremiah Senkpiel
7c3fed56dd
Working on v8.2.1
...
PR-URL: https://github.com/nodejs/node/pull/13744
2017-07-19 17:45:15 -04:00
Jeremiah Senkpiel
eb66efd605
2017-07-19, Version 8.2.0 (Current)
...
Big thanks to @addaleax who prepared the vast majority of this release.
Notable changes:
* **Async Hooks**
* Multiple improvements to Promise support in `async_hooks` have been made.
* **Build**
* The compiler version requirement to build Node with GCC has been raised to
GCC 4.9.4.
[[`820b011ed6`](https://github.com/nodejs/node/commit/820b011ed6 )]
[#13466 ](https://github.com/nodejs/node/pull/13466 )
* **Cluster**
* Users now have more fine-grained control over the inspector port used by
individual cluster workers. Previously, cluster workers would simply
increment from the master's debug port.
[[`dfc46e262a`](https://github.com/nodejs/node/commit/dfc46e262a )]
[#14140 ](https://github.com/nodejs/node/pull/14140 )
* **DNS**
* The server used for DNS queries can now use a custom port.
[[`ebe7bb29aa`](https://github.com/nodejs/node/commit/ebe7bb29aa )]
[#13723 ](https://github.com/nodejs/node/pull/13723 )
* Support for `dns.resolveAny()` has been added.
[[`6e30e2558e`](https://github.com/nodejs/node/commit/6e30e2558e )]
[#13137 ](https://github.com/nodejs/node/pull/13137 )
* **npm**
* The `npm` CLI has been updated to version 5.3.0. In particular, it now comes
with the `npx` binary, which is also shipped with Node.
[[`dc3f6b9ac1`](https://github.com/nodejs/node/commit/dc3f6b9ac1 )]
[#14235 ](https://github.com/nodejs/node/pull/14235 )
* `npm` Changelogs:
- [v5.0.4](https://github.com/npm/npm/releases/tag/v5.0.4 )
- [v5.1.0](https://github.com/npm/npm/releases/tag/v5.1.0 )
- [v5.2.0](https://github.com/npm/npm/releases/tag/v5.2.0 )
- [v5.3.0](https://github.com/npm/npm/releases/tag/v5.3.0 )
PR-URL: https://github.com/nodejs/node/pull/13744
2017-07-19 16:46:11 -04:00
Ben Noordhuis
e3ed425da7
src: fix memory leak in DH key setters
...
Fix a memory leak in dh.setPublicKey() and dh.setPrivateKey() where the
old keys weren't freed.
Fixes: https://github.com/nodejs/node/issues/8377
PR-URL: https://github.com/nodejs/node/pull/14122
Reviewed-By: Anna Henningsen <anna@addaleax.net >
Reviewed-By: James M Snell <jasnell@gmail.com >
2017-07-19 15:03:00 -04:00
Ben Noordhuis
83234db1eb
src: reduce allocations in exportPublicKey()
...
PR-URL: https://github.com/nodejs/node/pull/14122
Reviewed-By: Anna Henningsen <anna@addaleax.net >
Reviewed-By: James M Snell <jasnell@gmail.com >
2017-07-19 15:02:59 -04:00
Ben Noordhuis
62be8efd83
src: guard against double free in randomBytes()
...
PR-URL: https://github.com/nodejs/node/pull/14122
Reviewed-By: Anna Henningsen <anna@addaleax.net >
Reviewed-By: James M Snell <jasnell@gmail.com >
2017-07-19 15:02:59 -04:00
Ben Noordhuis
5caaf83ee9
src: simplify PBKDF2Request
...
This also renames a misnamed variable `error_` to `success_`.
PR-URL: https://github.com/nodejs/node/pull/14122
Reviewed-By: Anna Henningsen <anna@addaleax.net >
Reviewed-By: James M Snell <jasnell@gmail.com >
2017-07-19 15:02:59 -04:00
Ben Noordhuis
7d445906da
src: remove PBKDF2Request::release()
...
PR-URL: https://github.com/nodejs/node/pull/14122
Reviewed-By: Anna Henningsen <anna@addaleax.net >
Reviewed-By: James M Snell <jasnell@gmail.com >
2017-07-19 15:02:58 -04:00
Ben Noordhuis
2d2d75903d
src: avoid heap allocation in crypto.pbkdf2()
...
PR-URL: https://github.com/nodejs/node/pull/14122
Reviewed-By: Anna Henningsen <anna@addaleax.net >
Reviewed-By: James M Snell <jasnell@gmail.com >
2017-07-19 15:02:58 -04:00
Ben Noordhuis
36e1351f6c
src: make array arg length compile-time checkable
...
PR-URL: https://github.com/nodejs/node/pull/14122
Reviewed-By: Anna Henningsen <anna@addaleax.net >
Reviewed-By: James M Snell <jasnell@gmail.com >
2017-07-19 15:02:57 -04:00
Ben Noordhuis
3286f6a1f7
src: refactor PBKDF2Request
...
PR-URL: https://github.com/nodejs/node/pull/14122
Reviewed-By: Anna Henningsen <anna@addaleax.net >
Reviewed-By: James M Snell <jasnell@gmail.com >
2017-07-19 15:02:57 -04:00
Ben Noordhuis
27efc1a2e1
src: remove extra heap allocations in DH functions
...
Replace allocate + Encode() + free patterns by calls to Malloc +
the Buffer::New() overload that takes ownership of the pointer.
Avoids unnecessary heap allocations and copying around of data.
DRY the accessor functions for the prime, generator, public key and
private key properties; deletes about 40 lines of quadruplicated code.
PR-URL: https://github.com/nodejs/node/pull/14122
Reviewed-By: Anna Henningsen <anna@addaleax.net >
Reviewed-By: James M Snell <jasnell@gmail.com >
2017-07-19 15:02:56 -04:00
Ben Noordhuis
814f4f1314
src: avoid heap allocation in hmac.digest()
...
Add a test that ensures the second call to .digest() returns an empty
HMAC, like it did before. No comment on whether that is the right
behavior or not.
PR-URL: https://github.com/nodejs/node/pull/14122
Reviewed-By: Anna Henningsen <anna@addaleax.net >
Reviewed-By: James M Snell <jasnell@gmail.com >
2017-07-19 15:02:56 -04:00
Ben Noordhuis
23d9e7ee4c
src: remove extra heap allocation in GetSession()
...
Don't allocate + copy + free; allocate and fill in place, then hand off
the pointer to Buffer::New().
Avoids unnecessary heap allocations in the following methods:
- crypto.CryptoStream#getSession()
- tls.TLSSocket#getSession()
PR-URL: https://github.com/nodejs/node/pull/14122
Reviewed-By: Anna Henningsen <anna@addaleax.net >
Reviewed-By: James M Snell <jasnell@gmail.com >
2017-07-19 15:02:55 -04:00
Ben Noordhuis
fc7d8c0244
src: make CipherBase::kind_ const
...
The cipher kind doesn't change over the lifetime of the cipher so make
it const.
PR-URL: https://github.com/nodejs/node/pull/14122
Reviewed-By: Anna Henningsen <anna@addaleax.net >
Reviewed-By: James M Snell <jasnell@gmail.com >
2017-07-19 15:02:55 -04:00
Ben Noordhuis
e59858bdb9
src: remove unused Local
...
PR-URL: https://github.com/nodejs/node/pull/14122
Reviewed-By: Anna Henningsen <anna@addaleax.net >
Reviewed-By: James M Snell <jasnell@gmail.com >
2017-07-19 15:02:54 -04:00
Ben Noordhuis
8826617485
src: remove superfluous cipher_ data member
...
The EVP_CIPHER can be reconstructed from the EVP_CIPHER_CTX instance,
no need to store it separately.
This brought to light the somewhat dubious practice of accessing the
EVP_CIPHER after the EVP_CIPHER_CTX instance had been destroyed.
It's mostly harmless due to the static nature of built-in EVP_CIPHER
instances but it segfaults when the cipher is provided by an ENGINE
and the ENGINE is unloaded because its reference count drops to zero.
PR-URL: https://github.com/nodejs/node/pull/14122
Reviewed-By: Anna Henningsen <anna@addaleax.net >
Reviewed-By: James M Snell <jasnell@gmail.com >
2017-07-19 15:02:54 -04:00
Ben Noordhuis
c84d0cd168
src: don't heap allocate GCM cipher auth tag
...
Fix a memory leak by removing the heap allocation altogether.
Fixes: https://github.com/nodejs/node/issues/13917
PR-URL: https://github.com/nodejs/node/pull/14122
Reviewed-By: Anna Henningsen <anna@addaleax.net >
Reviewed-By: James M Snell <jasnell@gmail.com >
2017-07-19 15:02:53 -04:00
Ben Noordhuis
3d4692b67a
src: avoid heap allocation in sign.final()
...
Put the 8 kB initial buffer on the stack first and don't copy it to the
heap until its exact size is known (which is normally much smaller.)
PR-URL: https://github.com/nodejs/node/pull/14122
Reviewed-By: Anna Henningsen <anna@addaleax.net >
Reviewed-By: James M Snell <jasnell@gmail.com >
2017-07-19 15:02:53 -04:00