From a55b194638bcaace38917703b7d9233fb1989d44 Mon Sep 17 00:00:00 2001 From: Marcos Casagrande Date: Sun, 2 Oct 2022 01:21:48 +0200 Subject: fix(ext/cache): acquire reader lock before async op (#16126) --- ext/cache/01_cache.js | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) (limited to 'ext/cache') diff --git a/ext/cache/01_cache.js b/ext/cache/01_cache.js index b08de3675..c2843cedb 100644 --- a/ext/cache/01_cache.js +++ b/ext/cache/01_cache.js @@ -119,8 +119,10 @@ // Step 8. if (innerResponse.body !== null && innerResponse.body.unusable()) { - throw new TypeError("Response body must not already used"); + throw new TypeError("Response body is already used"); } + // acquire lock before async op + const reader = innerResponse.body?.stream.getReader(); // Remove fragment from request URL before put. reqUrl.hash = ""; @@ -138,8 +140,7 @@ responseStatusText: innerResponse.statusMessage, }, ); - if (innerResponse.body) { - const reader = innerResponse.body.stream.getReader(); + if (reader) { while (true) { const { value, done } = await reader.read(); if (done) { -- cgit v1.2.3