From fef80fce5523ebe151aedee1e1ef8efd2a86f1fe Mon Sep 17 00:00:00 2001 From: Christopher Faylor Date: Thu, 15 Sep 2005 00:31:42 +0000 Subject: [PATCH] * spawn.cc (av::fixup): Avoid breaking out of the wrong "loop". --- winsup/cygwin/ChangeLog | 4 ++++ winsup/cygwin/spawn.cc | 37 ++++++++++++++++++------------------- 2 files changed, 22 insertions(+), 19 deletions(-) diff --git a/winsup/cygwin/ChangeLog b/winsup/cygwin/ChangeLog index dfb19cd57..e1536d00f 100644 --- a/winsup/cygwin/ChangeLog +++ b/winsup/cygwin/ChangeLog @@ -1,3 +1,7 @@ +2005-09-14 Christopher Faylor + + * spawn.cc (av::fixup): Avoid breaking out of the wrong "loop". + 2005-09-14 Christopher Faylor * hookapi.cc (hook_or_detect_cygwin): Simplify very slightly. diff --git a/winsup/cygwin/spawn.cc b/winsup/cygwin/spawn.cc index f82cce095..73c148e24 100644 --- a/winsup/cygwin/spawn.cc +++ b/winsup/cygwin/spawn.cc @@ -1047,25 +1047,24 @@ av::fixup (child_info_types chtype, const char *prog_arg, path_conv& real_path, if (!buf) goto err; - do - { - myfault efault; - if (efault.faulted ()) - { - UnmapViewOfFile (buf); - real_path.set_cygexec (false); - break; - } - if (buf[0] == 'M' && buf[1] == 'Z') - { - unsigned off = (unsigned char) buf[0x18] | (((unsigned char) buf[0x19]) << 8); - win16_exe = off < sizeof (IMAGE_DOS_HEADER); - if (!win16_exe) - real_path.set_cygexec (!!hook_or_detect_cygwin (buf, NULL)); - UnmapViewOfFile (buf); - break; - } - } while (0); + { + myfault efault; + if (efault.faulted ()) + { + UnmapViewOfFile (buf); + real_path.set_cygexec (false); + break; + } + if (buf[0] == 'M' && buf[1] == 'Z') + { + unsigned off = (unsigned char) buf[0x18] | (((unsigned char) buf[0x19]) << 8); + win16_exe = off < sizeof (IMAGE_DOS_HEADER); + if (!win16_exe) + real_path.set_cygexec (!!hook_or_detect_cygwin (buf, NULL)); + UnmapViewOfFile (buf); + break; + } + } debug_printf ("%s is possibly a script", (char *) real_path); -- 2.43.5