Subject: Re: vtun 2.6nb4 broken? (Fixed!)
To: None <tech-pkg@NetBSD.org>
From: Curt Sampson <cjs@cynic.net>
List: tech-pkg
Date: 09/06/2004 15:55:12
On Mon, 6 Sep 2004, Curt Sampson wrote:
> I've just built vtund-2.6nb4, and it seems that it can connect with
> neither 2.6nb3 or itself. In both cases, the client says "connection
> denied" and the server says nothing except the initial startup message:
>
> VTUN server ver (Name,0) 09/06/2004 (inetd)
>
> Any thoughts?
Well, I have further info now. It dumps core here:
Program terminated with signal 11, Segmentation fault.
...
(gdb) bt
#0 0x10206fcc in strlen () from /usr/lib/libc.so.12
#1 0x101fce34 in vfprintf () from /usr/lib/libc.so.12
#2 0x101e5e24 in vsnprintf () from /usr/lib/libc.so.12
#3 0x15238 in print_p ()
#4 0x16368 in auth_server ()
#5 0x14b28 in connection ()
#6 0x14e68 in server ()
#7 0x12148 in main ()
#8 0x11ab8 in ___start ()
print_p is pretty simple, it allocates a buffer of VTUN_MESG_SIZE (which
is 60--maybe a bit short?) and does a vsnprintf to it, and then writes
the result to a file descriptor.
But which print_p in auth_server is invoked? Well, here's the final thing
it does before it dies:
28710 vtund CALL write(0x4,0xeffff7e0,0x3c)
28710 vtund GIO fd 4 wrote 60 bytes
"OK CHALCLI: <emgmgaiiamidceaaockmgogfacdapfpm>
\0\0\0\0\0\0\0\0\0\0\0\0\0"
28710 vtund RET write 60/0x3c
28710 vtund CALL select(0x5,0xeffff800,0,0,0xeffff7f8)
28710 vtund RET select 1
28710 vtund CALL read(0x4,0xeffff8e8,0x3c)
28710 vtund GIO fd 4 read 60 bytes
"CHALSRV: <ndeifojpkclgfklhmoeaicenfeaaenhf>
\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
28710 vtund RET read 60/0x3c
28710 vtund PSIG SIGSEGV SIG_DFL
28710 vtund NAMI "vtund.core"
So maybe this one?
print_p (fd, "OK RESPSRV: %s %s\n", cl2cs (chal_resh, VTUN_RESP_HASH_SIZE));
Oh, hang on; what are *two* "%s" tokens doing in there, when we pass in
only one argument?
Take out one of the "%s" thingies, and sure enough, the server now works.
But how did it work before? Luck? I don't see any deleted patches or
anything like that. Maybe because I was doing on an i386 before, and not
a Sparc.
Anyway, I'll commit a patch for this.
cjs
--
Curt Sampson <cjs@cynic.net> +81 90 7737 2974 http://www.NetBSD.org
Make up enjoying your city life...produced by BIC CAMERA