login.conf(5) states that "Capabilities that set environment variables are scanned for both `~' and `$' characters, which are substituted for a user's home directory and name respectively. To pass these characters literally into the environment variable, escape the character by preceding it with a backslash '\'. Fix: Either remove the support for escaping the characters or document its deficiencies. How-To-Repeat: Try escaping a ~ or $ in a setenv or path capability in login.conf or ~/.login_conf.
Responsible Changed From-To: freebsd-doc->trhodes Toss it here.
One way to make the behavior match the documentation is to use cgetustr(3) when interpreting a "path" or "setenv" capability. That way the normal backslash escape stuff is not done. This is what I just did in OpenBSD (I also implemented the normal cgetstr(3) escaping for consistency). - todd
For bugs matching the following criteria: Status: In Progress Changed: (is less than) 2014-06-01 Reset to default assignee and clear in-progress tags. Mail being skipped