| ... | @@ -215,8 +215,8 @@ pub fn posixExecve(path: []const u8, argv: []const []const u8, env_map: &const B | ... | @@ -215,8 +215,8 @@ pub fn posixExecve(path: []const u8, argv: []const []const u8, env_map: &const B |
| 215 | const argv_buf = %return allocator.alloc(?&const u8, argv.len + 2); | 215 | const argv_buf = %return allocator.alloc(?&const u8, argv.len + 2); |
| 216 | mem.set(?&const u8, argv_buf, null); | 216 | mem.set(?&const u8, argv_buf, null); |
| 217 | defer { | 217 | defer { |
| 218 | for (argv_buf) |arg, i| { | 218 | for (argv_buf) |arg| { |
| 219 | const arg_buf = if (const ptr ?= arg) ptr[0...argv[i].len + 1] else break; | 219 | const arg_buf = if (const ptr ?= arg) ptr[0...cstr.len(ptr)] else break; |
| 220 | allocator.free(arg_buf); | 220 | allocator.free(arg_buf); |
| 221 | } | 221 | } |
| 222 | allocator.free(argv_buf); | 222 | allocator.free(argv_buf); |
| ... | @@ -242,7 +242,7 @@ pub fn posixExecve(path: []const u8, argv: []const []const u8, env_map: &const B | ... | @@ -242,7 +242,7 @@ pub fn posixExecve(path: []const u8, argv: []const []const u8, env_map: &const B |
| 242 | const envp_buf = %return allocator.alloc(?&const u8, envp_count + 1); | 242 | const envp_buf = %return allocator.alloc(?&const u8, envp_count + 1); |
| 243 | mem.set(?&const u8, envp_buf, null); | 243 | mem.set(?&const u8, envp_buf, null); |
| 244 | defer { | 244 | defer { |
| 245 | for (envp_buf) |env, i| { | 245 | for (envp_buf) |env| { |
| 246 | const env_buf = if (const ptr ?= env) ptr[0...cstr.len(ptr)] else break; | 246 | const env_buf = if (const ptr ?= env) ptr[0...cstr.len(ptr)] else break; |
| 247 | allocator.free(env_buf); | 247 | allocator.free(env_buf); |
| 248 | } | 248 | } |