[sslh] sslh on Mac OS X

Yves Rutschle yves at naryves.com
Fri Mar 11 09:17:18 CET 2011


On Fri, Mar 11, 2011 at 10:41:39AM +0900, Aaron Madlon-Kay
wrote:
> However I did just notice a different console message that
> may help clear things up: The system claims that sslh is
> crashing every time I try to connect to it. I don't know
> if that's true, since I'm not seeing the startup messages
> repeated in sslh's log ("listening on ...", "turning into
> nobody", etc.), but the crash report generated is as
> follows:

It's possible: sslh-fork starts up ("listening on" and
"turning into") and then creates a new process for each
incoming connexion: if the new processes crashes, the main
process is unaffected (which makes sslh-fork robust to all
kinds of problems).


> Exception Type:  EXC_BAD_ACCESS (SIGSEGV)

Ok, so segmentation fault, probably due to a bad pointer.

> Thread 0 Crashed:  Dispatch queue: com.apple.main-thread
> 0   libSystem.B.dylib             	0x00007fff80f7f160 strlen + 16
> 1   libSystem.B.dylib             	0x00007fff80f8ab5c __vfprintf + 8144
> 2   libSystem.B.dylib             	0x00007fff80f88ceb __vfprintf + 351
> 3   libSystem.B.dylib             	0x00007fff80fd7154 vfprintf + 92
> 4   sslh-fork                     	0x0000000100001b59 0x100000000 + 7001
> 5   sslh-fork                     	0x0000000100001bc9 0x100000000 + 7113
> 6   sslh-fork                     	0x0000000100001004 0x100000000 + 4100
> 7   sslh-fork                     	0x0000000100001142 0x100000000 + 4418
> 8   sslh-fork                     	0x000000010000229b 0x100000000 + 8859
> 9   sslh-fork                     	0x0000000100000cac 0x100000000 + 3244

And we only call vfprintf from the log_message functions. So
either I did something wrong in log_message() which happens
to work on Linux and not on OS-X, or a caller to log_message
is passing something wrong (which still works on Linux).

Could you comment out the 'strip' command in the Makefile:

sslh: $(OBJS) sslh-fork.o sslh-select.o Makefile
        $(CC) $(CFLAGS) -D'VERSION=$(VERSION)' -o sslh-fork sslh-fork.o $(OBJS) $(LIBS)
        $(CC) $(CFLAGS) -D'VERSION=$(VERSION)' -o sslh-select sslh-select.o $(OBJS) $(LIBS)
        #strip sslh-fork sslh-select

and try again? That way we should get the call stack with function names and
we'll know which path leads to the problem, which will make my life easier :)

Cheers,
Y.



More information about the sslh mailing list