Browse Source

Avoid name change if script is called via symlink from execvp et al.

* spawn.cc (find_exec): Fix a name change in case of a symlink which
	can be opened as is.

Signed-off-by: Corinna Vinschen <vinschen@redhat.com>
cygwin-2.0
Corinna Vinschen 12 years ago
parent
commit
8f00fa7f36
No known key found for this signature in database GPG Key ID: F536069DAE444FA0
  1. 5
      winsup/cygwin/ChangeLog
  2. 3
      winsup/cygwin/release/1.7.36
  3. 12
      winsup/cygwin/spawn.cc

5
winsup/cygwin/ChangeLog

@ -1,3 +1,8 @@
2015-03-17 Corinna Vinschen <corinna@vinschen.de>
* spawn.cc (find_exec): Fix a name change in case of a symlink which
can be opened as is.
2015-03-12 Jon TURNEY <jon.turney@dronecode.org.uk>
* exceptions.cc (stack_info): Add sigstackptr member.

3
winsup/cygwin/release/1.7.36

@ -15,3 +15,6 @@ Bug Fixes
- Fix potential premature SIGHUP in pty code.
Addresses: https://cygwin.com/ml/cygwin/2015-03/msg00070.html
- Fix a name change from symlink to target name in calls to execvp, system, etc.
Addresses: https://cygwin.com/ml/cygwin/2015-03/msg00270.html

12
winsup/cygwin/spawn.cc

@ -104,13 +104,13 @@ find_exec (const char *name, path_conv& buf, const char *search,
if ((has_slash || opt & FE_CWD)
&& (suffix = perhaps_suffix (name, buf, err, opt)) != NULL)
{
/* Overwrite potential symlink target with original path.
See comment preceeding this method. */
tmp_path = tmp;
if (!has_slash)
{
/* Overwrite potential symlink target with original path.
See comment preceeding this method. */
stpcpy (stpcpy (tmp, "./"), name);
buf.set_posix (tmp);
}
tmp_path = stpcpy (tmp, "./");
stpcpy (tmp_path, name);
buf.set_posix (tmp);
retval = buf.get_posix ();
goto out;
}

Loading…
Cancel
Save