From 7216666d3f9b24f153e483f895057a6f1f312634 Mon Sep 17 00:00:00 2001 From: undefined Date: Mon, 18 Mar 2024 04:21:08 +0800 Subject: [PATCH] judge: fix --- packages/hydrojudge/package.json | 4 +++- packages/hydrojudge/src/hosts/vj4.ts | 1 + 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/packages/hydrojudge/package.json b/packages/hydrojudge/package.json index 0e33e585f..bdf9d8e29 100644 --- a/packages/hydrojudge/package.json +++ b/packages/hydrojudge/package.json @@ -1,12 +1,13 @@ { "name": "@hydrooj/hydrojudge", "bin": "bin/hydrojudge.js", - "version": "3.3.5", + "version": "3.3.6", "main": "./src/index.ts", "author": "undefined ", "repository": "https://github.com/hydro-dev/Hydro.git", "dependencies": { "@hydrooj/utils": "workspace:*", + "adm-zip": "0.5.5", "cac": "^6.7.14", "p-queue": "^8.0.1", "schemastery": "^3.14.3", @@ -18,6 +19,7 @@ "preferUnplugged": true, "license": "AGPL-3.0-or-later", "devDependencies": { + "@types/adm-zip": "^0.4.34", "@types/shell-quote": "^1.7.5", "@types/ws": "^8.5.10" } diff --git a/packages/hydrojudge/src/hosts/vj4.ts b/packages/hydrojudge/src/hosts/vj4.ts index 0eefaad1c..4a5522fc9 100644 --- a/packages/hydrojudge/src/hosts/vj4.ts +++ b/packages/hydrojudge/src/hosts/vj4.ts @@ -151,6 +151,7 @@ export default class VJ4 implements Session { const zip = new AdmZip(tmpFilePath); const entries = zip.getEntries(); if (entries.length > 512) throw new FormatError('Too many files'); + if (Math.sum(entries.map((i) => i.header.size)) > 256 * 1024 * 1024) throw new FormatError('File too large'); await new Promise((resolve, reject) => { zip.extractAllToAsync(savePath, true, (e) => { if (e) reject(e);