* fhandler.cc (fhandler_disk_file::fstat): Don't rely on exactly 3 characters
being read for executable test since we could be checking for less than that. * syscalls.cc (stat_worker): Try opening the file the "correct" way first so that #! processing can potentially happen. If that fails, then use "query open" method. * spawn.cc (spawn_guts): Delay processing of signal until after we've notified parent about reparenting.
This commit is contained in:
@ -743,6 +743,7 @@ skip_arg_parsing:
|
||||
|
||||
HANDLE waitbuf[3] = {pi.hProcess, signal_arrived, spr};
|
||||
int nwait = 3;
|
||||
bool saw_signal = 0;
|
||||
|
||||
res = 0;
|
||||
exited = FALSE;
|
||||
@ -761,8 +762,8 @@ skip_arg_parsing:
|
||||
break;
|
||||
case WAIT_OBJECT_0 + 1:
|
||||
sigproc_printf ("signal arrived");
|
||||
// reset_signal_arrived ();
|
||||
thisframe.call_signal_handler ();
|
||||
reset_signal_arrived ();
|
||||
saw_signal = 1;
|
||||
continue;
|
||||
case WAIT_OBJECT_0 + 2:
|
||||
if (mode == _P_OVERLAY)
|
||||
@ -820,6 +821,9 @@ skip_arg_parsing:
|
||||
}
|
||||
}
|
||||
|
||||
if (saw_signal && mode != _P_OVERLAY)
|
||||
thisframe.call_signal_handler ();
|
||||
|
||||
MALLOC_CHECK;
|
||||
|
||||
switch (mode)
|
||||
|
Reference in New Issue
Block a user