aboutsummaryrefslogtreecommitdiff
path: root/src/bun.js
diff options
context:
space:
mode:
authorGravatar Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com> 2022-09-20 15:58:26 -0700
committerGravatar Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com> 2022-09-20 23:56:08 -0700
commit9667eec9de01230058fbc3557e87307c621534d1 (patch)
tree4f456f7d6fed90a35ec22b63c9e6c6d65a27e7e7 /src/bun.js
parent26625f3e2a1868ba47b293aec68316a03ff2382c (diff)
downloadbun-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.zig20
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);
}