hello,

I've found a bug in security/stunnel (for details have a look at PR5189).

The port maintainer ([EMAIL PROTECTED]) wasn't very interested and redirected
me to the author of stunnel.
So I sent him a mail.
He explained that he provided his own implementation of socketpair()
for systems on which this syscall is broken.
(IMHO he should not #define INET_SOCKET_PAIR by default.)
His own implementation was in fact broken.
(client.c, line 906 in stunnel-4.14, inside make_sockets() )
- addrlen=sizeof(SOCKADDR_UNION);
+ addrlen=sizeof(struct sockaddr_in);
This resulted in passing too big size to bind(), which failed silently.

So the solution is either to apply this diff, or as I would do to comment
out #define INET_SOCKET_PAIR.
This bug is still not fixed in ports tree.
stunnel-4.16 isn't released yet, but I think it will be fixed there.
(the author didn't really know what was going on and asked me for further
explanation...)


BTW. I found something annoying in ports infrastructure, have a look:
> cd /usr/ports/security/stunnel
> make
>> Broken dependency: devel/gmake non existent (BUILD_DEPENDS ::devel/gmake)
*** Error code 1

Stop in /usr/ports/security/stunnel (line 1422 of 
/usr/ports/infrastructure/mk/bsd.port.mk).
> pkg_info | grep gmake
gmake-3.80p1        GNU make

That shouldn't be difficult to fix.

Reply via email to