From 8b9a05c04bbe00aedf063754b13a1915caba68ca Mon Sep 17 00:00:00 2001 From: Bartosz Sosnowski Date: Wed, 2 Aug 2017 15:05:52 +0200 Subject: [PATCH] test: read proper inspector message size Fix a bug when messages bigger than 64kb where incorrectly parsed by the inspector-helper. PR-URL: https://github.com/nodejs/node/pull/14596 Fixes: https://github.com/nodejs/node/issues/14507 Reviewed-By: Luigi Pinca Reviewed-By: Eugene Ostroukhov Reviewed-By: Refael Ackermann Reviewed-By: Colin Ihrig Reviewed-By: James M Snell --- test/inspector/inspector-helper.js | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/test/inspector/inspector-helper.js b/test/inspector/inspector-helper.js index 53b9ebdca75b54..17842ffd98961a 100644 --- a/test/inspector/inspector-helper.js +++ b/test/inspector/inspector-helper.js @@ -48,6 +48,7 @@ function send(socket, message, id, callback) { } function parseWSFrame(buffer, handler) { + // Protocol described in https://tools.ietf.org/html/rfc6455#section-5 if (buffer.length < 2) return 0; assert.strictEqual(0x81, buffer[0]); @@ -59,7 +60,8 @@ function parseWSFrame(buffer, handler) { dataLen = buffer.readUInt16BE(2); bodyOffset = 4; } else if (dataLen === 127) { - dataLen = buffer.readUInt32BE(2); + assert(buffer[2] === 0 && buffer[3] === 0, 'Inspector message too big'); + dataLen = buffer.readUIntBE(4, 6); bodyOffset = 10; } if (buffer.length < bodyOffset + dataLen)