(Illustration by Gaich Muramatsu)
Greetings all, I'm experimenting with using Coda to replace some of my NFS usage on my network, but I am unable to set up a server... my SrvLog prints all the normal "such and such is starting" messages (it does complain about no VLDB, but that's normal when you have yet to set one up from what I can tell, and shouldn't keep the server from starting). After about 12 seconds, the server dies. strace -s90 codasrv shows this: ... old_mmap(0x150d3000, 98304, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x150d3000 gettimeofday({1052344534, 174192}, NULL) = 0 gettimeofday({1052344534, 174219}, NULL) = 0 gettimeofday({1052344534, 174243}, NULL) = 0 time([1052344534]) = 1052344534 write(1, "17:55:34 ServerLWP 4 just did a rvmlib_set_thread_data()\n\n", 58) = 58 gettimeofday({1052344534, 174382}, NULL) = 0 old_mmap(0x150ed000, 98304, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x150ed000 gettimeofday({1052344534, 174748}, NULL) = 0 gettimeofday({1052344534, 174773}, NULL) = 0 gettimeofday({1052344534, 174797}, NULL) = 0 time([1052344534]) = 1052344534 write(1, "17:55:34 ServerLWP 5 just did a rvmlib_set_thread_data()\n\n", 58) = 58 gettimeofday({1052344534, 174925}, NULL) = 0 old_mmap(0x15107000, 98304, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x15107000 gettimeofday({1052344534, 175353}, NULL) = 0 gettimeofday({1052344534, 175378}, NULL) = 0 gettimeofday({1052344534, 175402}, NULL) = 0 time([1052344534]) = 1052344534 write(1, "17:55:34 ResLWP-0 just did a rvmlib_set_thread_data()\n\n", 55) = 55 gettimeofday({1052344534, 175530}, NULL) = 0 old_mmap(0x15121000, 98304, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x15121000 gettimeofday({1052344534, 175958}, NULL) = 0 gettimeofday({1052344534, 175983}, NULL) = 0 gettimeofday({1052344534, 176007}, NULL) = 0 time([1052344534]) = 1052344534 write(1, "17:55:34 ResLWP-1 just did a rvmlib_set_thread_data()\n\n", 55) = 55 gettimeofday({1052344534, 176135}, NULL) = 0 old_mmap(0x1513b000, 98304, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x1513b000 gettimeofday({1052344534, 176558}, NULL) = 0 gettimeofday({1052344534, 176583}, NULL) = 0 gettimeofday({1052344534, 176607}, NULL) = 0 gettimeofday({1052344534, 176654}, NULL) = 0 readlink("/proc/self/exe", "/usr/local/sbin/codasrv", 4095) = 23 brk(0x8164000) = 0x8164000 brk(0x8166000) = 0x8166000 time([1052344534]) = 1052344534 getpid() = 891 rt_sigaction(SIGPIPE, {0x401f3650, [], 0x4000000}, {SIG_DFL}, 8) = 0 socket(PF_UNIX, SOCK_DGRAM, 0) = 9 fcntl64(9, F_SETFD, FD_CLOEXEC) = 0 connect(9, {sin_family=AF_UNIX, path="/dev/log"}, 16) = 0 send(9, "<82>May 7 17:55:34 libsafe.so[891]: 2.0.12", 43, 0) = 43 rt_sigaction(SIGPIPE, {SIG_DFL}, NULL, 8) = 0 time([1052344534]) = 1052344534 getpid() = 891 rt_sigaction(SIGPIPE, {0x401f3650, [], 0x4000000}, {SIG_DFL}, 8) = 0 send(9, "<82>May 7 17:55:34 libsafe.so[891]: Detected an attempt to write across stack boundary.", 88, 0) = 88 rt_sigaction(SIGPIPE, {SIG_DFL}, NULL, 8) = 0 time([1052344534]) = 1052344534 getpid() = 891 rt_sigaction(SIGPIPE, {0x401f3650, [], 0x4000000}, {SIG_DFL}, 8) = 0 send(9, "<82>May 7 17:55:34 libsafe.so[891]: Terminating /usr/local/sbin/codasrv.", 73, 0) = 73 rt_sigaction(SIGPIPE, {SIG_DFL}, NULL, 8) = 0 getpid() = 891 geteuid32() = 0 getuid32() = 0 time([1052344534]) = 1052344534 getpid() = 891 rt_sigaction(SIGPIPE, {0x401f3650, [], 0x4000000}, {SIG_DFL}, 8) = 0 send(9, "<82>May 7 17:55:34 libsafe.so[891]: uid=0 euid=0 pid=891", 63, 0) = 63 rt_sigaction(SIGPIPE, {SIG_DFL}, NULL, 8) = 0 time([1052344534]) = 1052344534 getpid() = 891 rt_sigaction(SIGPIPE, {0x401f3650, [], 0x4000000}, {SIG_DFL}, 8) = 0 send(9, "<82>May 7 17:55:34 libsafe.so[891]: Call stack:\n", 49, 0) = 49 rt_sigaction(SIGPIPE, {SIG_DFL}, NULL, 8) = 0 time([1052344534]) = 1052344534 getpid() = 891 rt_sigaction(SIGPIPE, {0x401f3650, [], 0x4000000}, {SIG_DFL}, 8) = 0 send(9, "<82>May 7 17:55:34 libsafe.so[891]: 0x40017534\n", 52, 0) = 52 rt_sigaction(SIGPIPE, {SIG_DFL}, NULL, 8) = 0 time([1052344534]) = 1052344534 getpid() = 891 rt_sigaction(SIGPIPE, {0x401f3650, [], 0x4000000}, {SIG_DFL}, 8) = 0 send(9, "<82>May 7 17:55:34 libsafe.so[891]: 0x400181da\n", 52, 0) = 52 rt_sigaction(SIGPIPE, {SIG_DFL}, NULL, 8) = 0 time([1052344534]) = 1052344534 getpid() = 891 rt_sigaction(SIGPIPE, {0x401f3650, [], 0x4000000}, {SIG_DFL}, 8) = 0 send(9, "<82>May 7 17:55:34 libsafe.so[891]: 0x804cb9f\n", 51, 0) = 51 rt_sigaction(SIGPIPE, {SIG_DFL}, NULL, 8) = 0 time([1052344534]) = 1052344534 getpid() = 891 rt_sigaction(SIGPIPE, {0x401f3650, [], 0x4000000}, {SIG_DFL}, 8) = 0 send(9, "<82>May 7 17:55:34 libsafe.so[891]: 0x4012ebaf\n", 52, 0) = 52 rt_sigaction(SIGPIPE, {SIG_DFL}, NULL, 8) = 0 time([1052344534]) = 1052344534 getpid() = 891 rt_sigaction(SIGPIPE, {0x401f3650, [], 0x4000000}, {SIG_DFL}, 8) = 0 send(9, "<82>May 7 17:55:34 libsafe.so[891]: overflow caused by sprintf()", 65, 0) = 65 rt_sigaction(SIGPIPE, {SIG_DFL}, NULL, 8) = 0 fstat64(2, {st_mode=S_IFREG|0644, st_size=0, ...}) = 0 old_mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x40027000 getpid() = 891 geteuid32() = 0 getuid32() = 0 getpid() = 891 kill(891, SIGKILL) = 0 +++ killed by SIGKILL +++ I set everything up with vice-setup, and AFAIK am not doing anything unusual. This is the libsafe.so message (cat log|tail -n100|grep 'send(9'|cut -d: -f-|cut -d\" -f1): 2.0.12 Detected an attempt to write across stack boundary. Terminating /usr/local/sbin/codasrv. uid=0 euid=0 pid=891 Call stack: 0x40017534 0x400181da 0x804cb9f 0x4012ebaf overflow caused by sprintf() Hopping into gdb... (gdb) list *0x804cb9f 0x804cb9f is in main (srv.cc:565). 560 sprintf(sname, "ResCheckSrvrLWP"); ... Opening up coda-5.3.20/coda-srv/vice/srv.cc ... Line 333: char sname[20]; BUT... the string is only 16 bytes including \0!!! Is my glibc problematic with Coda or some such? Should this be happening? Should I just disable libsafe or something? Did I find a bug? =) Or... Did I just set something up wrong? I compiled my own, btw. Running Slackware 8.1.01-stable Linux, patched a few times. # uname -a Linux erinaceous 2.4.10 #3 Fri Nov 8 16:18:52 EST 2002 i686 unknown. I have libc6/glibc2.3.1. Any help is appreciated! =) --os (the orange squid) a.k.a. Matt Williams os_at_udel.edu os_at_os.us.eu.org Vote Cthulhu, not Bush! http://www.cthulhu.org/ Be sure to check out Madonna's latest new single, "WTF Do You Think You're Doing?" http://anti-dmca.org/mirror/ irixx/madonna/wtf.mp3Received on 2003-05-07 18:11:36