mirror of
https://github.com/nodejs/node.git
synced 2025-05-10 17:57:53 +00:00

From the zlib v1.2.11 manual: > ZEXTERN int ZEXPORT inflateInit2 OF((z_streamp strm, > int windowBits)); > > ... > windowBits can also be zero to request that inflate use the window > size in the zlib header of the compressed stream. The current validation of windowBits in zlib.js doesn't check for this case. PR-URL: https://github.com/nodejs/node/pull/19686 Reviewed-By: Richard Lau <riclau@uk.ibm.com> Reviewed-By: Luigi Pinca <luigipinca@gmail.com>
34 lines
870 B
JavaScript
34 lines
870 B
JavaScript
'use strict';
|
|
|
|
const common = require('../common');
|
|
const assert = require('assert');
|
|
const zlib = require('zlib');
|
|
|
|
|
|
// windowBits is a special case in zlib. On the compression side, 0 is invalid.
|
|
// On the decompression side, it indicates that zlib should use the value from
|
|
// the header of the compressed stream.
|
|
{
|
|
const inflate = zlib.createInflate({ windowBits: 0 });
|
|
assert(inflate instanceof zlib.Inflate);
|
|
}
|
|
|
|
{
|
|
const gunzip = zlib.createGunzip({ windowBits: 0 });
|
|
assert(gunzip instanceof zlib.Gunzip);
|
|
}
|
|
|
|
{
|
|
const unzip = zlib.createUnzip({ windowBits: 0 });
|
|
assert(unzip instanceof zlib.Unzip);
|
|
}
|
|
|
|
{
|
|
common.expectsError(() => zlib.createGzip({ windowBits: 0 }), {
|
|
code: 'ERR_OUT_OF_RANGE',
|
|
type: RangeError,
|
|
message: 'The value of "options.windowBits" is out of range. ' +
|
|
'It must be >= 8 and <= 15. Received 0'
|
|
});
|
|
}
|