From 293aa11d512ee089f1d559b24e6f8bbe707cfb8d Mon Sep 17 00:00:00 2001 From: Crux Date: Wed, 14 Mar 2018 12:19:09 +0900 Subject: [PATCH] Fix wrong XML-RPC body length calculation method which results in SCGI calls failing when multibyte characters are included (#635) --- server/util/scgi.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/server/util/scgi.js b/server/util/scgi.js index 480dea29..ab39bcfd 100644 --- a/server/util/scgi.js +++ b/server/util/scgi.js @@ -33,11 +33,12 @@ const sendMethodCall = (methodName, parameters) => { const deserializer = new Deserializer('utf8'); const stream = net.connect(connectMethod); const xml = Serializer.serializeMethodCall(methodName, parameters); + const xmlLength = Buffer.byteLength(xml, 'utf8'); stream.setEncoding('UTF8'); const headerItems = [ - `CONTENT_LENGTH${nullChar}${xml.length}${nullChar}`, + `CONTENT_LENGTH${nullChar}${xmlLength}${nullChar}`, `SCGI${nullChar}1${nullChar}` ];