From 2db04ef9d9ddf6531b0a77c3b0867bc80388a039 Mon Sep 17 00:00:00 2001 From: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com> Date: Wed, 18 Jan 2023 01:16:13 -0800 Subject: Fix crash with invalid arguments in readdir() --- src/bun.js/node/node_fs_binding.zig | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) (limited to 'src') diff --git a/src/bun.js/node/node_fs_binding.zig b/src/bun.js/node/node_fs_binding.zig index 07ecf4619..219f85cd8 100644 --- a/src/bun.js/node/node_fs_binding.zig +++ b/src/bun.js/node/node_fs_binding.zig @@ -38,11 +38,16 @@ fn callSync(comptime FunctionEnum: NodeFSFunctionEnum) NodeFSFunction { var exceptionref: JSC.C.JSValueRef = null; var arguments = callframe.arguments(8); + var slice = ArgumentsSlice.init(globalObject.bunVM(), arguments.ptr[0..arguments.len]); defer slice.deinit(); const args = if (comptime Arguments != void) - (Arguments.fromJS(globalObject, &slice, &exceptionref) orelse return .zero) + (Arguments.fromJS(globalObject, &slice, &exceptionref) orelse { + std.debug.assert(exceptionref != null); + globalObject.throwValue(JSC.JSValue.c(exceptionref)); + return .zero; + }) else Arguments{}; -- cgit v1.2.3