env-update generates colon-separated CONFIG_PROTECT and CONFIG_PROTECT_MASK variables for /etc/csh.env when they should be space-separated. The bug is obvious by inspection: the csh.env generation code lacks the check for CONFIG_PROTECT etc. that the /etc/profile code has. Patch is attached. (Patch also corrects the spelling of "separated". Remember, there's A RAT in sepARATe.) Marking as critical as emerge could clobber files that should be protected if root's shell is csh. Reproducible: Always Steps to Reproduce: 1. % env-update 2. % grep CONFIG_PROTECT /etc/csh.env 3. Wonder if I'm the Gentoo-er who uses csh. Actual Results: % grep CONFIG_PROTECT /etc/csh.env setenv CONFIG_PROTECT '/usr/X11R6/lib/X11/xkb:/usr/kde/3.1/share/config:/usr/share/texmf/tex/generic/config/ /usr/share/texmf/tex/platex/config/:/usr/share/config' Expected Results: % grep CONFIG_PROTECT /etc/csh.env setenv CONFIG_PROTECT '/usr/X11R6/lib/X11/xkb /usr/kde/3.1/share/config /usr/share/texmf/tex/generic/config/ /usr/share/texmf/tex/platex/config/ /usr/share/config'
Created attachment 31793 [details, diff] patch to portage.py to fix CONFIG_PROTECT generation for /etc/csh.env
Fixed in CVS.
Bug has been fixed and released in stable portages on or before 2.0.51-r2