mirror of
https://git.FreeBSD.org/src.git
synced 2024-12-19 10:53:58 +00:00
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. MFC after: 1 week
This commit is contained in:
parent
64957baacb
commit
2f61288c80
Notes:
svn2git
2020-12-20 02:59:44 +00:00
svn path=/head/; revision=280919
@ -118,8 +118,10 @@ we_askshell(const char *words, wordexp_t *we, int flags)
|
||||
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 *we, int flags)
|
||||
_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);
|
||||
|
Loading…
Reference in New Issue
Block a user