Skip to content

Commit edb12dd

Browse files
etiennebarriebyroot
andcommitted
wip
Co-authored-by: Jean Boussier <[email protected]>
1 parent 6d08c2f commit edb12dd

File tree

1 file changed

+7
-3
lines changed

1 file changed

+7
-3
lines changed

process.c

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4624,21 +4624,25 @@ rb_posix_spawn(struct rb_execarg *eargp)
46244624
{
46254625
pid_t pid;
46264626
char *abspath = NULL;
4627+
char **argv = NULL;
46274628

4628-
if (!NIL_P(eargp->invoke.cmd.command_abspath)) {
4629+
if (RTEST(eargp->invoke.cmd.command_abspath)) {
46294630
abspath = RSTRING_PTR(eargp->invoke.cmd.command_abspath);
46304631
}
46314632
else {
46324633
errno = ENOENT;
46334634
return -1;
46344635
}
46354636

4636-
char **argv = ARGVSTR2ARGV(eargp->invoke.cmd.argv_str);
4637+
argv = ARGVSTR2ARGV(eargp->invoke.cmd.argv_str);
46374638

46384639
VALUE envp_str = eargp->envp_str;
46394640
char **envp = RTEST(envp_str) ? RB_IMEMO_TMPBUF_PTR(envp_str) : NULL;
46404641

4641-
pid = posix_spawn(&pid, abspath, NULL, NULL, argv, envp);
4642+
int err = posix_spawn(&pid, abspath, NULL, NULL, argv, envp);
4643+
if (err) {
4644+
rb_sys_fail(abspath);
4645+
}
46424646

46434647
return (rb_pid_t)pid;
46444648
}

0 commit comments

Comments
 (0)