Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 19 Apr 2015 13:51:25 +0000 (UTC)
From:      Jilles Tjoelker <jilles@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org
Subject:   svn commit: r281743 - stable/10/lib/libc/gen
Message-ID:  <201504191351.t3JDpP0o000557@svn.freebsd.org>

next in thread | raw e-mail | index | archive | help
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);



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201504191351.t3JDpP0o000557>