From 29ff2b5abd071c31f5affc3c2e5dc69c8c860c0d Mon Sep 17 00:00:00 2001 From: Aleksandr Veselov Date: Fri, 15 Aug 2025 14:11:06 +0300 Subject: [PATCH] Escape paths in loadNativeLibrary --- interop/src/interop/loadLibraries.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/interop/src/interop/loadLibraries.ts b/interop/src/interop/loadLibraries.ts index 6e5ff11eed..a91b88cd34 100644 --- a/interop/src/interop/loadLibraries.ts +++ b/interop/src/interop/loadLibraries.ts @@ -28,7 +28,7 @@ export function loadNativeLibrary(name: string): Record { const errors: { candidate: string, command: string, error: any }[] = [] if (!isHZVM) try { - candidates.push(eval(`require.resolve("${nameWithoutSuffix}.node")`)) + candidates.push(eval(`require.resolve(${JSON.stringify((nameWithoutSuffix + ".node"))})`)) } catch (e) { errors.push({ candidate: `${nameWithoutSuffix}.node`, command: `resolve(...)`, error: e }) } @@ -38,7 +38,7 @@ export function loadNativeLibrary(name: string): Record { if (isHZVM) return (globalThis as any).requireNapi(candidate, true) else - return eval(`let exports = {}; process.dlopen({ exports }, "${candidate}", 2); exports`) + return eval(`let exports = {}; process.dlopen({ exports }, ${JSON.stringify(candidate)}, 2); exports`) } catch (e) { errors.push({ candidate: candidate, command: `dlopen`, error: e }) } -- Gitee