| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
1 parent c7350c2 commit 4e38dee
2 files changed
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -556,7 +556,14 @@ function processHeader(self, state, key, value, validate) { | |||
| 556 | 556 | // https://www.rfc-editor.org/rfc/rfc6266#section-4.3 | |
| 557 | 557 | // Refs: https://github.com/nodejs/node/pull/46528 | |
| 558 | 558 | if (isContentDispositionField(key) && self._contentLength) { | |
| 559 | - value = Buffer.from(value, 'latin1'); | ||
| 559 | + // The value could be an array here | ||
| 560 | + if (ArrayIsArray(value)) { | ||
| 561 | + for (let i = 0; i < value.length; i++) { | ||
| 562 | + value[i] = Buffer.from(value[i], 'latin1'); | ||
| 563 | + } | ||
| 564 | + } else { | ||
| 565 | + value = Buffer.from(value, 'latin1'); | ||
| 566 | + } | ||
| 560 | 567 | } | |
| 561 | 568 | ||
| 562 | 569 | if (ArrayIsArray(value)) { | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -26,6 +26,27 @@ const nonUtf8ToLatin1 = Buffer.from(nonUtf8Header).toString('latin1'); | |||
| 26 | 26 | })); | |
| 27 | 27 | } | |
| 28 | 28 | ||
| 29 | + { | ||
| 30 | + // Test multi-value header | ||
| 31 | + const server = http.createServer(common.mustCall((req, res) => { | ||
| 32 | + res.writeHead(200, [ | ||
| 33 | + 'content-disposition', | ||
| 34 | + [Buffer.from(nonUtf8Header).toString('binary')], | ||
| 35 | + ]); | ||
| 36 | + res.end('hello'); | ||
| 37 | + })); | ||
| 38 | + | ||
| 39 | + server.listen(0, common.mustCall(() => { | ||
| 40 | + http.get({ port: server.address().port }, (res) => { | ||
| 41 | + assert.strictEqual(res.statusCode, 200); | ||
| 42 | + assert.strictEqual(res.headers['content-disposition'], nonUtf8ToLatin1); | ||
| 43 | + res.resume().on('end', common.mustCall(() => { | ||
| 44 | + server.close(); | ||
| 45 | + })); | ||
| 46 | + }); | ||
| 47 | + })); | ||
| 48 | + } | ||
| 49 | + | ||
| 29 | 50 | { | |
| 30 | 51 | const server = http.createServer(common.mustCall((req, res) => { | |
| 31 | 52 | res.writeHead(200, [ | |
| Back | FazBrowse Home | New Git URL |
0 commit comments