Re: sshd broken with UsePrivilegeSeparation=yes on sparc64

From: John-Mark Gurney <gurney_j_at_resnet.uoregon.edu>
Date: Sun, 15 Jul 2007 11:17:32 -0700
Michiel Boland wrote this message on Sun, Jul 15, 2007 at 17:43 +0200:
> 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.

Could you give us an assembly dump of the two differences?  phk thinks
there might be an issue w/ the CMSG_DATA macro, and a quick glance
makes me question it too...  It looks scare on platforms that require
aligned accesses...

-- 
  John-Mark Gurney				Voice: +1 415 225 5579

     "All that I will do, has been done, All that I have, has not."
Received on Sun Jul 15 2007 - 16:17:37 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:39:14 UTC