sshd broken with UsePrivilegeSeparation=yes on sparc64

Michiel Boland michiel at boland.org
Sun Jul 15 15:43:48 UTC 2007


It looks like gcc mis-compiles /usr/src/crypto/openssh/monitor_fdpass.c on 
sparc64. For some reason it optimizes away the assignment of fd on line 
132:

         fd = (*(int *)CMSG_DATA(cmsg));

So I guess that every call to mm_receive_fd will return an undefined 
value.

If I add -O0 to CFLAGS in /usr/src/secure/lib/libssh/Makefile, ssh with 
UsePrivilegeSeparation=yes works again.

So, obviously a gcc bug. I will try to generate a smaller test-case for 
this.


More information about the freebsd-current mailing list