IFS pollution from localpkg
Doug White
dwhite at gumbysoft.com
Sat Oct 2 15:18:52 PDT 2004
Hey folks,
I ran into a build problem on my amd64 box today, where ar was being fed
output from a backtick operation but the carriage returns weren't being
converted to spaces. After some gdb digging in sh, I found that the
reason for the problem was that IFS=" " was set in my shell environment.
Since I don't touch IFS in any of my shell dotfiles, and the system
shellfiles don't either, I think this may be coming from
/etc/rc.d/localpkg. It sets IFS just before calling the start script for
scripts in /usr/local/etc/rc.d/ and friends. I start kdm out of a script
there, and it probably inherits the environment, and it propagates all
the way up to my Konsole session where I was trying to build world.
Unsetting IFS made the buildworld continue past the prior point of
trouble.
I'm not quite sure why this is only a problem on the amd64 machine -- it
was running a September 23 world, but is running KDE 3.3 instead of KDE
3.2 like the other machines I have here. The system was also built from
scratch about that time, and the others have been around for 6 months or
more.
I guess no one changes the script_name_sep rc.conf variable to something
more dangerous than the default space...
Anyway, I think we should investigate running local package scripts with
IFS (and other hazardous variables) stripped using env. Or perhaps not
play with IFS at all unless the user sets script_name_sep, and change the
default accordingly.
I'm not sure why this doesn't mess more stuff up :-/
--
Doug White | FreeBSD: The Power to Serve
dwhite at gumbysoft.com | www.FreeBSD.org
More information about the freebsd-current
mailing list