svn commit: r281743 - stable/10/lib/libc/gen
Jilles Tjoelker
jilles at FreeBSD.org
Sun Apr 19 13:51:26 UTC 2015
Author: jilles
Date: Sun Apr 19 13:51:25 2015
New Revision: 281743
URL: https://svnweb.freebsd.org/changeset/base/281743
Log:
MFC r280919: wordexp: Explicitly pass along IFS.
Per Austin group issue #884, sh should not import IFS from the environment
but always set it to $' \t\n'. For wordexp(), however, it is documented and
useful for it to use IFS from the environment.
Since sh currently imports IFS from the environment, this change has no
functional effect.
Modified:
stable/10/lib/libc/gen/wordexp.c
Directory Properties:
stable/10/ (props changed)
Modified: stable/10/lib/libc/gen/wordexp.c
==============================================================================
--- stable/10/lib/libc/gen/wordexp.c Sun Apr 19 13:46:13 2015 (r281742)
+++ stable/10/lib/libc/gen/wordexp.c Sun Apr 19 13:51:25 2015 (r281743)
@@ -118,8 +118,10 @@ we_askshell(const char *words, wordexp_t
char *nstrings; /* Temporary for realloc() */
char **nwv; /* Temporary for realloc() */
sigset_t newsigblock, oldsigblock;
+ const char *ifs;
serrno = errno;
+ ifs = getenv("IFS");
if (pipe2(pdes, O_CLOEXEC) < 0)
return (WRDE_NOSPACE); /* XXX */
@@ -145,7 +147,8 @@ we_askshell(const char *words, wordexp_t
_fcntl(pdes[1], F_SETFD, 0)) < 0)
_exit(1);
execl(_PATH_BSHELL, "sh", flags & WRDE_UNDEF ? "-u" : "+u",
- "-c", "eval \"$1\";eval \"wordexp $2\"", "",
+ "-c", "IFS=$1;eval \"$2\";eval \"wordexp $3\"", "",
+ ifs != NULL ? ifs : " \t\n",
flags & WRDE_SHOWERR ? "" : "exec 2>/dev/null", words,
(char *)NULL);
_exit(1);
More information about the svn-src-stable-10
mailing list