From 5c598e35c2b48e49da1734881c0868786e6c30b0 Mon Sep 17 00:00:00 2001 From: Pablo Bonilla Date: Wed, 13 Aug 2025 18:22:59 -0600 Subject: [PATCH 1/2] Skip single-byte buffer when reading through UrlSource for range request --- src/source.ts | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/source.ts b/src/source.ts index 0c511a7..90974a8 100644 --- a/src/source.ts +++ b/src/source.ts @@ -314,7 +314,9 @@ export class UrlSource extends Source { } else if (rangeResponse.status === 200) { // The server just returned the whole thing this._fullData = await rangeResponse.arrayBuffer(); - return this._fullData.byteLength; + if (this._fullData.byteLength !== 1) { + return this._fullData.byteLength; + } } // If the range request didn't provide the size, make a full GET request From 4521a6558775e98537fec6189f43e6f0797d542c Mon Sep 17 00:00:00 2001 From: Pablo Bonilla Date: Wed, 13 Aug 2025 19:05:03 -0600 Subject: [PATCH 2/2] Add descriptive comment on why range request response must be skipped --- src/source.ts | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/source.ts b/src/source.ts index 90974a8..50b2e8c 100644 --- a/src/source.ts +++ b/src/source.ts @@ -316,6 +316,8 @@ export class UrlSource extends Source { this._fullData = await rangeResponse.arrayBuffer(); if (this._fullData.byteLength !== 1) { return this._fullData.byteLength; + } else { + // The server responded with 200, but returned only the requested range, so skip the response } }