* 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:
Christopher Faylor
2001-06-26 21:03:08 +00:00
parent 32c3034969
commit 07c3cd5bb1
4 changed files with 28 additions and 5 deletions

View File

@ -993,8 +993,8 @@ fhandler_disk_file::fstat (struct stat *buf)
{
/* FIXME should we use /etc/magic ? */
magic[0] = magic[1] = magic[2] = '\0';
if (ReadFile (get_handle (), magic, 3, &done, 0) &&
done == 3 && has_exec_chars (magic, done))
if (ReadFile (get_handle (), magic, 3, &done, NULL) &&
has_exec_chars (magic, done))
set_execable_p ();
SetFilePointer (get_handle(), cur, NULL, FILE_BEGIN);
}