diff options
author | 2022-09-20 15:58:26 -0700 | |
---|---|---|
committer | 2022-09-20 23:56:08 -0700 | |
commit | 9667eec9de01230058fbc3557e87307c621534d1 (patch) | |
tree | 4f456f7d6fed90a35ec22b63c9e6c6d65a27e7e7 /src/bun.js | |
parent | 26625f3e2a1868ba47b293aec68316a03ff2382c (diff) | |
download | bun-9667eec9de01230058fbc3557e87307c621534d1.tar.gz bun-9667eec9de01230058fbc3557e87307c621534d1.tar.zst bun-9667eec9de01230058fbc3557e87307c621534d1.zip |
Be more careful with process.argv
Diffstat (limited to '')
-rw-r--r-- | src/bun.js/node/types.zig | 20 |
1 files changed, 12 insertions, 8 deletions
diff --git a/src/bun.js/node/types.zig b/src/bun.js/node/types.zig index 1576568c5..9dfb19c5f 100644 --- a/src/bun.js/node/types.zig +++ b/src/bun.js/node/types.zig @@ -1809,19 +1809,23 @@ pub const Process = struct { ) catch unreachable; var args_list = std.ArrayListUnmanaged(JSC.ZigString){ .items = args, .capacity = args.len }; args_list.items.len = 0; - args_list.appendAssumeCapacity( - JSC.ZigString.init( + if (std.process.args().next()) |arg0| { + std.debug.assert(arg0.len > 0); + + args_list.appendAssumeCapacity( + JSC.ZigString.init( // cheap way to get the first argument - bun.span(std.process.args().next().?), - ), - ); - args_list.appendAssumeCapacity(JSC.ZigString.init(vm.main).withEncoding()); + arg0).withEncoding(), + ); + } + + if (vm.main.len > 0) + args_list.appendAssumeCapacity(JSC.ZigString.init(vm.main).withEncoding()); defer allocator.free(args); { for (vm.argv) |arg0| { - var argv0 = JSC.ZigString.init(std.mem.span(arg0)); - argv0.setOutputEncoding(); + const argv0 = JSC.ZigString.init(std.mem.span(arg0)).withEncoding(); // https://github.com/yargs/yargs/blob/adb0d11e02c613af3d9427b3028cc192703a3869/lib/utils/process-argv.ts#L1 args_list.appendAssumeCapacity(argv0); } |