Skip to content

zlib fails when uncompressing a previously compressed empty buffer #17041

Closed
@DiegoTUI

Description

@DiegoTUI

Zlib throws an exception when trying to decompress a previously compressed empty buffer. The code below does not enter any catch block in node 8.x.x, but enters all of them in node 9.1.0. It seems like the compression part behaves exactly the same in 8.x.x and 9.1.0, but the decompression part definitely not.

'use strict';

const assert = require('assert');
const zlib = require('zlib');
const emptyBuffer = new Buffer(0);
let compressed, decompressed

//deflateRawSync
compressed = zlib.deflateRawSync(emptyBuffer);
console.log(compressed);
try {
  decompressed = zlib.inflateRawSync(compressed);
  assert(decompressed.compare(emptyBuffer) === 0);
} catch (e) { console.log('deflateRawSync', e);}

//deflateSync
compressed = zlib.deflateSync(emptyBuffer);
console.log(compressed);
try {
  decompressed = zlib.inflateSync(compressed);
  assert(decompressed.compare(emptyBuffer) === 0);
} catch (e) { console.log('deflateSync', e);}

//gzipSync
compressed = zlib.gzipSync(emptyBuffer);
console.log(compressed);
try {
  decompressed = zlib.gunzipSync(compressed);
  assert(decompressed.compare(emptyBuffer) === 0);
} catch (e) { console.log('gzipSync', e);}

(edited by @addaleax: syntax highlighting)

Metadata

Metadata

Assignees

Labels

confirmed-bugIssues with confirmed bugs.zlibIssues and PRs related to the zlib subsystem.

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions