diff --git a/lib/tls.js b/lib/tls.js index 3e45429072..2f41dc1f32 100644 --- a/lib/tls.js +++ b/lib/tls.js @@ -52,7 +52,7 @@ exports.convertNPNProtocols = function convertNPNProtocols(NPNProtocols, out) { // If it's already a Buffer - store it if (NPNProtocols instanceof Buffer) { - out.NPNProtocols = NPNProtocols; + out.NPNProtocols = Buffer.from(NPNProtocols); } }; diff --git a/test/parallel/test-tls-basic-validations.js b/test/parallel/test-tls-basic-validations.js new file mode 100644 index 0000000000..c3ebabc9e6 --- /dev/null +++ b/test/parallel/test-tls-basic-validations.js @@ -0,0 +1,19 @@ +'use strict'; + +const common = require('../common'); +if (!common.hasCrypto) { + common.skip('missing crypto'); + return; +} + +const assert = require('assert'); +const tls = require('tls'); + +{ + const buffer = Buffer.from('abcd'); + const out = {}; + tls.convertNPNProtocols(buffer, out); + out.NPNProtocols.write('efgh'); + assert(buffer.equals(Buffer.from('abcd'))); + assert(out.NPNProtocols.equals(Buffer.from('efgh'))); +}