From b690ae4c2d80feac03068c395d628383d44af5c4 Mon Sep 17 00:00:00 2001 From: Niko Lehto Date: Mon, 3 Feb 2020 09:57:56 +0100 Subject: [PATCH] Move error handling to Inflate class Every call wants this check so this should be done inside the class. --- kasmweb/core/decoders/tight.js | 6 ------ kasmweb/core/inflator.js | 4 ++++ 2 files changed, 4 insertions(+), 6 deletions(-) diff --git a/kasmweb/core/decoders/tight.js b/kasmweb/core/decoders/tight.js index 8885e7b..d74b2d5 100644 --- a/kasmweb/core/decoders/tight.js +++ b/kasmweb/core/decoders/tight.js @@ -175,9 +175,6 @@ export default class TightDecoder { } data = this._zlibs[streamId].inflate(data, uncompressedSize); - if (data.length != uncompressedSize) { - throw new Error("Incomplete zlib block"); - } } display.blitRgbImage(x, y, width, height, data, 0, false); @@ -223,9 +220,6 @@ export default class TightDecoder { } data = this._zlibs[streamId].inflate(data, uncompressedSize); - if (data.length != uncompressedSize) { - throw new Error("Incomplete zlib block"); - } } // Convert indexed (palette based) image data to RGB diff --git a/kasmweb/core/inflator.js b/kasmweb/core/inflator.js index b7af040..726600f 100644 --- a/kasmweb/core/inflator.js +++ b/kasmweb/core/inflator.js @@ -37,6 +37,10 @@ export default class Inflate { inflate(this.strm, 0); // Flush argument not used. + if (this.strm.next_out != expected) { + throw new Error("Incomplete zlib block"); + } + return new Uint8Array(this.strm.output.buffer, 0, this.strm.next_out); }