summaryrefslogtreecommitdiff
path: root/ext/node/polyfills/internal
diff options
context:
space:
mode:
authorDivy Srivastava <dj.srivastava23@gmail.com>2023-03-17 02:55:12 +0530
committerGitHub <noreply@github.com>2023-03-16 22:25:12 +0100
commit1300d6178e8863a220fa301e9fde8be3580d9b66 (patch)
treea29b839ea2583339042fafd90387990ea2d4ac94 /ext/node/polyfills/internal
parent2c7174a5a245ff5d7e4e9f7a1fafb578be9a3ef2 (diff)
fix(ext/node): resource leak in createHmac (#18229)
This commit fixes https://github.com/denoland/deno/issues/18140. Verified that test fails on `main`.
Diffstat (limited to 'ext/node/polyfills/internal')
-rw-r--r--ext/node/polyfills/internal/crypto/hash.ts4
1 files changed, 2 insertions, 2 deletions
diff --git a/ext/node/polyfills/internal/crypto/hash.ts b/ext/node/polyfills/internal/crypto/hash.ts
index de7b16297..d81844f30 100644
--- a/ext/node/polyfills/internal/crypto/hash.ts
+++ b/ext/node/polyfills/internal/crypto/hash.ts
@@ -178,7 +178,6 @@ class HmacImpl extends Transform {
const u8Key = prepareSecretKey(key, options?.encoding) as Buffer;
const alg = hmac.toLowerCase();
- this.#hash = new Hash(alg, options);
this.#algorithm = alg;
const blockSize = (alg === "sha512" || alg === "sha384") ? 128 : 64;
const keySize = u8Key.length;
@@ -186,7 +185,8 @@ class HmacImpl extends Transform {
let bufKey: Buffer;
if (keySize > blockSize) {
- bufKey = this.#hash.update(u8Key).digest() as Buffer;
+ const hash = new Hash(alg, options);
+ bufKey = hash.update(u8Key).digest() as Buffer;
} else {
bufKey = Buffer.concat([u8Key, this.#ZEROES], blockSize);
}