SIGABRT on `cvs login`
Yuri Pankov
yuri.pankov at gmail.com
Fri Jan 18 03:29:44 PST 2008
On Fri, Jan 18, 2008 at 09:13:38AM +0300, Yuri Pankov wrote:
> Hi,
>
> I'm getting SIGABRT running `cvs login`. It's -CURRENT/amd64 updated
> on Jan, 16.
>
> Backtrace:
>
> (gdb) run login
> Starting program: /usr/bin/cvs login
> Logging in to :pserver:anoncvs at anoncvs.tw.freebsd.org:2401/home/ncvs
> CVS password: <- using "anoncvs" here
> cvs login: warning: failed to open /home/yuri/.cvspass for reading: No
> such file or directory
> Assertion failed: ((run->regs_mask[elm] & (1U << bit)) == 0), function
> arena_run_reg_dalloc, file /usr/src/lib/libc/stdlib/malloc.c, line 2197.
>
> Program received signal SIGABRT, Aborted.
> 0x00000008013f53cc in kill () at kill.S:2
> 2 RSYSCALL(kill)
> Current language: auto; currently asm
> (gdb) bt full
> #0 0x00000008013f53cc in kill () at kill.S:2
> No locals.
> #1 0x00000008013f423b in abort () at
> /usr/src/lib/libc/stdlib/abort.c:65
> act = {__sigaction_u = {__sa_handler = 0x90, __sa_sigaction =
> 0x90}, sa_flags = 8, sa_mask = {__bits = {4294967263,
> 4294967295, 4294967295, 4294967295}}}
> #2 0x00000008013dd225 in __assert (func=0x8289 <Error reading address
> 0x8289: Bad address>,
> file=0x6 <Error reading address 0x6: Bad address>, line=0,
> failedexpr=0x0) at /usr/src/lib/libc/gen/assert.c:54
> No locals.
> #3 0x0000000801383bf3 in arena_dalloc_small (arena=0x589e70,
> chunk=Variable "chunk" is not available.
> ) at /usr/src/lib/libc/stdlib/malloc.c:2197
> run = (arena_run_t *) 0x601000
> bin = (arena_bin_t *) 0x589fe8
> size = 16
> __func__ = "arena_dalloc_small"
> #4 0x0000000801383ea6 in idalloc (ptr=0x6012a0) at
> /usr/src/lib/libc/stdlib/malloc.c:3097
> chunk = (arena_chunk_t *) 0x600000
> __func__ = "idalloc"
> #5 0x0000000801384177 in free (ptr=0x6012a0) at
> /usr/src/lib/libc/stdlib/malloc.c:4571
> __func__ = "free"
> #6 0x0000000000429bb2 in login (argc=Variable "argc" is not available.
> ) at
> /usr/src/gnu/usr.bin/cvs/cvs/../../../../contrib/cvs/src/login.c:574
> typed_password = 0x601290 'Z' <repeats 64 times>
> cvsroot_canonical = 0x613300
> ":pserver:anoncvs at anoncvs.tw.freebsd.org:2401/home/ncvs"
> #7 0x000000000042c538 in main (argc=1, argv=0x7fffffffe668)
> at
> /usr/src/gnu/usr.bin/cvs/cvs/../../../../contrib/cvs/src/main.c:1010
> n = (Node *) 0x6131c0
> CVSroot_parsed = Variable "CVSroot_parsed" is not available.
>
> Any other info that I can provide?
More details:
diff between 1.11.17 and 1.11.22
Index: ccvs/src/client.c
diff -u ccvs/src/client.c:1.318.4.20 ccvs/src/client.c:1.318.4.42
--- ccvs/src/client.c:1.318.4.20 Mon Apr 26 15:52:05 2004
+++ ccvs/src/client.c Thu Jun 8 19:58:30 2006
<snip>
@@ -3914,6 +3921,7 @@
/* Paranoia. */
memset (password, 0, strlen (password));
+ free (password);
# else /* ! AUTH_CLIENT_SUPPORT */
error (1, 0, "INTERNAL ERROR: This client does not support
pserver authentication");
# endif /* AUTH_CLIENT_SUPPORT */
<snip>
password = get_cvs_password(), which returns cvs_password if
it's set, and cvs_password is free()'d again in login.c.
Yuri
More information about the freebsd-current
mailing list