diff options
author | Divy Srivastava <dj.srivastava23@gmail.com> | 2023-12-13 22:28:56 +0530 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-12-13 09:58:56 -0700 |
commit | 38002ffdd7e602e666e48d39fc84f7093fad9dff (patch) | |
tree | 86832b04d70b497612ee7545325ae42bdd448d4f | |
parent | 10ab8c1ef1ccc93bd810c5636e2a70bb7c37e91e (diff) |
fix(zlib): handle no flush flag in handle_.write (#21432)
Fixes https://github.com/denoland/deno/issues/21096
-rw-r--r-- | cli/tests/unit_node/zlib_test.ts | 15 | ||||
-rw-r--r-- | ext/node/polyfills/_zlib_binding.mjs | 2 |
2 files changed, 16 insertions, 1 deletions
diff --git a/cli/tests/unit_node/zlib_test.ts b/cli/tests/unit_node/zlib_test.ts index 5f82b1202..fc9eaeb5b 100644 --- a/cli/tests/unit_node/zlib_test.ts +++ b/cli/tests/unit_node/zlib_test.ts @@ -81,3 +81,18 @@ Deno.test( await promise; }, ); + +Deno.test( + "zlib flush i32", + // FIXME: Handle is not closed properly + { sanitizeResources: false }, + function () { + const handle = createDeflate({ + // @ts-expect-error: passing non-int flush value + flush: "", + }); + + handle.end(); + handle.destroy(); + }, +); diff --git a/ext/node/polyfills/_zlib_binding.mjs b/ext/node/polyfills/_zlib_binding.mjs index 0b155cfd5..30bd1400a 100644 --- a/ext/node/polyfills/_zlib_binding.mjs +++ b/ext/node/polyfills/_zlib_binding.mjs @@ -120,7 +120,7 @@ class Zlib { core.opAsync( "op_zlib_write_async", this.#handle, - flush, + flush ?? Z_NO_FLUSH, input, in_off, in_len, |