[Bug 146] OpenSSH 3.1p1 will not build on BSD/OS 4.2/4.1/4.01

bugzilla-daemon at mindrot.org bugzilla-daemon at mindrot.org
Fri Mar 8 11:38:29 EST 2002


http://bugzilla.mindrot.org/show_bug.cgi?id=146





------- Additional Comments From spike at indra.com  2002-03-08 11:38 -------
> I just went through someone with this problem.  And HAVE_BOGUS_SYS_QUEUE_H
> worked for them.   However you must have BOTH HAVE_SYS_QUEUE_H and 
> HAVE_BOGUS_SYS_QUEUE_H set.

I tried this, and had no luck.  As a test I even removed the #ifdefs
in ssh-agent.c to force fake-queue.h to be included.  If I'm reading
gcc -E right, and it's been a long time since I have, the problem lies
in <sys/queue.h> getting included before fake-queue.h.  The include
path looks like:

includes.h -> config.h -> defines.h -> <netinet/in.h> ->
<netinet6/in6.h> -> <sys/queue.h>

Then <sys/queue.h> defines _SYS_QUEUE_H_ so that when fake-queue.h,
it's all ifdef'ed out (and of course it would explode if both were
included).

I pasted the define for TAILQ_FOREACH into ssh-agent.c and it compiles
fine.  So it's probably just a case of finding a more graceful way of
doing that.

> As for INADDR_LOOPBACK.  I'd like to know where on BSD/OS that is defined
> so we can check and include it correctly.

It's defined in <rpc/types.h>:

#ifndef INADDR_LOOPBACK
#define       INADDR_LOOPBACK         (u_long)0x7F000001
#endif

I included that in defines.h and it compiled as well.

Having done that I installed 3.1p1.  The server works fine, but the
clients all failed with:

(rand child) setuid: Operation not permitted
ssh-rand-helper child produced insufficient data

Removing the setuid bit from "ssh" solved this problem.  Digging a
little deeper it looks like original_uid and original_euid are never
initialized.

->Spike





------- You are receiving this mail because: -------
You are the assignee for the bug, or are watching the assignee.



More information about the openssh-unix-dev mailing list