From 4a3d87045e86fef6be8f27262db6f118ab058b4e Mon Sep 17 00:00:00 2001 From: cnc Date: Wed, 3 Jun 2026 19:24:13 +0800 Subject: [PATCH] =?UTF-8?q?=E5=8F=82=E8=80=83=E6=89=80=E6=9C=89=E5=88=86?= =?UTF-8?q?=E7=BB=84=EF=BC=8C=E5=AE=8C=E6=88=90=E5=B0=BD=E9=87=8F=E5=A4=9A?= =?UTF-8?q?=E7=9A=84=E5=86=85=E5=AE=B9=E3=80=82=E7=A6=81=E6=AD=A2=E9=A1=BA?= =?UTF-8?q?=E6=89=8B=E6=89=A9=E5=8A=9F=E8=83=BD=20smoke?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 结论:收敛第 3/5/6 组 OPFS/browser 约束,test-native guardrail 明确要求 wasm-core OPFS 路径拒绝反斜杠和 NUL 字符,防止 browser WASM filesystem 路径逃逸;未扩展 smoke 功能。验证:./test-native.sh、./test-linuxcnc-source-link.sh 均通过。 --- test-native.sh | 2 ++ 1 file changed, 2 insertions(+) diff --git a/test-native.sh b/test-native.sh index 82ec3c6..ac9956c 100755 --- a/test-native.sh +++ b/test-native.sh @@ -267,6 +267,8 @@ grep -F 'async function statOpfsEntry(workspacePath, relativePath)' web/src/wasm grep -F 'async function readOpfsDirectoryTree(workspacePath, relativePath, relativeRoot = "")' web/src/wasm-core.js >/dev/null grep -F 'function readWasmDirectoryTree(module, rootPath, relativeRoot = "")' web/src/wasm-core.js >/dev/null grep -F 'function writeWasmFileReplacingPath(module, path, data)' web/src/wasm-core.js >/dev/null +grep -F 'path.includes("\\")' web/src/wasm-core.js >/dev/null +grep -F 'path.includes("\0")' web/src/wasm-core.js >/dev/null grep -F '`${LINUXCNC_DEFAULT_PARAMETER_FILE}.bak`' web/src/wasm-core.js >/dev/null grep -F 'export type WasmModuleOptions' web/src/wasm-core.d.ts >/dev/null grep -F 'printErr?: (text: string) => void;' web/src/wasm-core.d.ts >/dev/null