| Summary: | change in remote command execution behavior | ||
|---|---|---|---|
| Product: | Portable OpenSSH | Reporter: | kaizaad |
| Component: | sshd | Assignee: | Assigned to nobody <unassigned-bugs> |
| Status: | CLOSED WORKSFORME | ||
| Severity: | normal | CC: | djm |
| Priority: | P2 | ||
| Version: | 5.1p1 | ||
| Hardware: | amd64 | ||
| OS: | Linux | ||
|
Description
kaizaad
2009-01-08 07:29:57 AEDT
This is due to a change in sshd interacting with a hack in bash. sshd used to spawn session shells and communicate with them over a socketpair() on some platforms but in 5.1 we changed this to pipe()s everwhere to support proper half-closed semantics (see bug #85 for the gory details). Apparently bash behaved differently when started when stdin is a pipe to when it is a socket, and would only source .bashrc when it is a socket. I'm not sure the reason for this behaviour - sshd has used pipes to communicate with the shell on some platforms for many years, so at best this only worked by accident. https://bugzilla.redhat.com/show_bug.cgi?id=458839 has some more details on this. I think the fix needs to be in bash. Hello Damien, Appreciate the explanation. thanks -k Close bugs fixed/reviewed for openssh-5.2 release |