Skip to content

Commit 0a9bf21

Browse files
committed
enforce non-negative size in gzip parser
1 parent e2a1a71 commit 0a9bf21

2 files changed

Lines changed: 2 additions & 2 deletions

File tree

lib/deno/mod.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -130,7 +130,7 @@ function extractFileFromTarGzip(buffer: Uint8Array, file: string): Uint8Array {
130130
let name = str(offset, 100)
131131
let size = parseInt(str(offset + 124, 12), 8)
132132
offset += 512
133-
if (!isNaN(size)) {
133+
if (!isNaN(size) && size >= 0) {
134134
if (name === file) return buffer.subarray(offset, offset + size)
135135
offset += (size + 511) & ~511
136136
}

lib/npm/node-install.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -94,7 +94,7 @@ function extractFileFromTarGzip(buffer: Buffer, subpath: string): Buffer {
9494
let name = str(offset, 100)
9595
let size = parseInt(str(offset + 124, 12), 8)
9696
offset += 512
97-
if (!isNaN(size)) {
97+
if (!isNaN(size) && size >= 0) {
9898
if (name === subpath) return buffer.subarray(offset, offset + size)
9999
offset += (size + 511) & ~511
100100
}

0 commit comments

Comments
 (0)