cygwin: fix potential buffer overflow in fork
When fork fails, we can use "%s" now with system_sprintf for the errmsg rather than a (potentially too small) buffer for the format string. * fork.cc (fork): Use "%s" with system_printf now.
This commit is contained in:
parent
4449971295
commit
1adbd77cab
|
@ -618,13 +618,8 @@ fork ()
|
||||||
if (!grouped.errmsg)
|
if (!grouped.errmsg)
|
||||||
syscall_printf ("fork failed - child pid %d, errno %d", grouped.child_pid, grouped.this_errno);
|
syscall_printf ("fork failed - child pid %d, errno %d", grouped.child_pid, grouped.this_errno);
|
||||||
else
|
else
|
||||||
{
|
system_printf ("child %d - %s, errno %d", grouped.child_pid,
|
||||||
char buf[strlen (grouped.errmsg) + sizeof ("child %d - , errno 4294967295 ")];
|
grouped.errmsg, grouped.this_errno);
|
||||||
strcpy (buf, "child %d - ");
|
|
||||||
strcat (buf, grouped.errmsg);
|
|
||||||
strcat (buf, ", errno %d");
|
|
||||||
system_printf (buf, grouped.child_pid, grouped.this_errno);
|
|
||||||
}
|
|
||||||
|
|
||||||
set_errno (grouped.this_errno);
|
set_errno (grouped.this_errno);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue