Re: core segfaults (Yahoo?)

"A. Craig West" <[email protected]> Wed, 10 Mar 2004 01:34:22 -0500 (EST)
Newsgroups gmane.network.everybuddy.devel
Message-ID <[email protected]>
On Mon, 8 Mar 2004, Meredydd wrote:

> On Monday 08 March 2004 04:47, Philip S Tellis wrote:
> > On Fri, 5 Mar 2004, Karine Proot wrote:
> > > #3  0x402fd36b in yahoo_process_status (yid=0x0, pkt=0x8072e70)
> > >     at libyahoo2.c:1397
> > > #4  0x40301391 in yahoo_process_pager_connection (yid=0x8062428,
> > > over=0) at libyahoo2.c:3020
> >
> > strange.
> > yid cannot change from 0x8062428 to 0x0 on its own.
> Stack smash? Have you tried compiling it with electric fence?
I ran it under valgrind, and we seem to have a lot of issues with callbacks
completing early, and messing up code that isn't expecting that.
Now that I have this, I should be able to figure out what the problem is...

==27377== Memcheck, a.k.a. Valgrind, a memory error detector for x86-linux.
==27377== Copyright (C) 2002-2003, and GNU GPL'd, by Julian Seward.
==27377== Using valgrind-2.0.0, a program supervision framework for x86-linux.
==27377== Copyright (C) 2000-2003, and GNU GPL'd, by Julian Seward.
==27377== 
==27377== My PID = 27377, parent PID = 27375.  Prog and args are:
==27377==    /usr/local/bin/eb-lite
==27377==    --cookie
==27377==    184
==27377==    213
==27377==    182
==27377==    56
==27377==    102
==27377==    21
==27377==    84
==27377==    133
==27377== Estimated CPU clock rate is 451 MHz
==27377== For more details, rerun with: -v
==27377== 
==27377== Conditional jump or move depends on uninitialised value(s)
==27377==    at 0x4000EA2F: strchr (in /lib/ld-2.3.2.so)
==27377== 
==27377== Conditional jump or move depends on uninitialised value(s)
==27377==    at 0x4000EBF3: strlen (in /lib/ld-2.3.2.so)
==27377==    by 0x4000AA3F: _dl_signal_cerror (in /lib/ld-2.3.2.so)
==27377==    by 0x400075FE: _dl_lookup_symbol_internal (in /lib/ld-2.3.2.so)
==27377==    by 0x404BC2DD: _dl_sym (in /lib/libc-2.3.2.so)
==27377== discard syms in /usr/local/lib/eb-lite/misc.so due to munmap()
==27377== 
==27377== Invalid read of size 1
==27377==    at 0x40020A0F: strcmp (in /usr/lib/valgrind/vgskin_memcheck.so)
==27377==    by 0x8053984: plugin_by_name (plugin.c:117)
==27377==    by 0x8053A86: load_plugin (plugin.c:161)
==27377==    by 0x8053926: load_plugins (plugin.c:103)
==27377==    Address 0x41459D98 is 0 bytes inside a block of size 31 free'd
==27377==    at 0x40027E67: free (in /usr/lib/valgrind/vgskin_memcheck.so)
==27377==    by 0x8053B41: load_plugin (plugin.c:188)
==27377==    by 0x8053926: load_plugins (plugin.c:103)
==27377==    by 0x8051A1D: main (main.c:230)
==27377== 
==27377== Conditional jump or move depends on uninitialised value(s)
==27377==    at 0x4000EA74: strchr (in /lib/ld-2.3.2.so)
==27377== 
==27377== Conditional jump or move depends on uninitialised value(s)
==27377==    at 0x4000E9E6: strchr (in /lib/ld-2.3.2.so)
==27377== 
==27377== Invalid write of size 4
==27377==    at 0x4160DFB6: yahoo_login (libyahoo2.c:3489)
==27377==    by 0x41613423: login (yahoo.c:117)
==27377==    by 0x805587E: eb_sign_on_all (util.c:55)
==27377==    by 0x804C635: eb_gui_incoming (gui_comms.c:307)
==27377==    Address 0x41467D80 is 4 bytes inside a block of size 12 free'd
==27377==    at 0x40027E67: free (in /usr/lib/valgrind/vgskin_memcheck.so)
==27377==    by 0x4160DE88: yahoo_connected (libyahoo2.c:3442)
==27377==    by 0x41614F48: conn_cb (yahoo.c:1339)
==27377==    by 0x8054625: eb_rawtcp_connect (proxy.c:119)
==27377== Warning: invalid file descriptor 7 in syscall read()
==27377== 
==27377== Invalid read of size 4
==27377==    at 0x4160DCA7: yahoo_read_ready (libyahoo2.c:3356)
==27377==    by 0x41614DB4: rd_cb (yahoo.c:1239)
==27377==    by 0x8053E3B: eb_polling_loop (plugin_api.c:97)
==27377==    by 0x8051A64: main (main.c:258)
==27377==    Address 0x41467A7C is 56 bytes inside a block of size 72 free'd
==27377==    at 0x40027E67: free (in /usr/lib/valgrind/vgskin_memcheck.so)
==27377==    by 0x41606EB5: yahoo_free_data (libyahoo2.c:517)
==27377==    by 0x41607A07: yahoo_close (libyahoo2.c:806)
==27377==    by 0x416134EB: logout (yahoo.c:137)
==27377== 
==27377== Invalid read of size 4
==27377==    at 0x4160CFB2: yahoo_process_pager_connection (libyahoo2.c:3012)
==27377==    by 0x4160DC22: yahoo_read_ready (libyahoo2.c:3359)
==27377==    by 0x41614DB4: rd_cb (yahoo.c:1239)
==27377==    by 0x8053E3B: eb_polling_loop (plugin_api.c:97)
==27377==    Address 0x41467A7C is 56 bytes inside a block of size 72 free'd
==27377==    at 0x40027E67: free (in /usr/lib/valgrind/vgskin_memcheck.so)
==27377==    by 0x41606EB5: yahoo_free_data (libyahoo2.c:517)
==27377==    by 0x41607A07: yahoo_close (libyahoo2.c:806)
==27377==    by 0x416134EB: logout (yahoo.c:137)
==27377== 
==27377== Invalid read of size 4
==27377==    at 0x41607A72: yahoo_input_close (libyahoo2.c:816)
==27377==    by 0x4160DC2A: yahoo_read_ready (libyahoo2.c:3360)
==27377==    by 0x41614DB4: rd_cb (yahoo.c:1239)
==27377==    by 0x8053E3B: eb_polling_loop (plugin_api.c:97)
==27377==    Address 0x41467A7C is 56 bytes inside a block of size 72 free'd
==27377==    at 0x40027E67: free (in /usr/lib/valgrind/vgskin_memcheck.so)
==27377==    by 0x41606EB5: yahoo_free_data (libyahoo2.c:517)
==27377==    by 0x41607A07: yahoo_close (libyahoo2.c:806)
==27377==    by 0x416134EB: logout (yahoo.c:137)
==27377== 
==27377== Invalid read of size 4
==27377==    at 0x41607A94: yahoo_input_close (libyahoo2.c:818)
==27377==    by 0x4160DC2A: yahoo_read_ready (libyahoo2.c:3360)
==27377==    by 0x41614DB4: rd_cb (yahoo.c:1239)
==27377==    by 0x8053E3B: eb_polling_loop (plugin_api.c:97)
==27377==    Address 0x41467A7C is 56 bytes inside a block of size 72 free'd
==27377==    at 0x40027E67: free (in /usr/lib/valgrind/vgskin_memcheck.so)
==27377==    by 0x41606EB5: yahoo_free_data (libyahoo2.c:517)
==27377==    by 0x41607A07: yahoo_close (libyahoo2.c:806)
==27377==    by 0x416134EB: logout (yahoo.c:137)
==27377== 
==27377== Invalid read of size 4
==27377==    at 0x41607AD0: yahoo_input_close (libyahoo2.c:824)
==27377==    by 0x4160DC2A: yahoo_read_ready (libyahoo2.c:3360)
==27377==    by 0x41614DB4: rd_cb (yahoo.c:1239)
==27377==    by 0x8053E3B: eb_polling_loop (plugin_api.c:97)
==27377==    Address 0x41467A7C is 56 bytes inside a block of size 72 free'd
==27377==    at 0x40027E67: free (in /usr/lib/valgrind/vgskin_memcheck.so)
==27377==    by 0x41606EB5: yahoo_free_data (libyahoo2.c:517)
==27377==    by 0x41607A07: yahoo_close (libyahoo2.c:806)
==27377==    by 0x416134EB: logout (yahoo.c:137)
==27377== 
==27377== Invalid read of size 4
==27377==    at 0x41607B74: yahoo_input_close (libyahoo2.c:826)
==27377==    by 0x4160DC2A: yahoo_read_ready (libyahoo2.c:3360)
==27377==    by 0x41614DB4: rd_cb (yahoo.c:1239)
==27377==    by 0x8053E3B: eb_polling_loop (plugin_api.c:97)
==27377==    Address 0x41467A7C is 56 bytes inside a block of size 72 free'd
==27377==    at 0x40027E67: free (in /usr/lib/valgrind/vgskin_memcheck.so)
==27377==    by 0x41606EB5: yahoo_free_data (libyahoo2.c:517)
==27377==    by 0x41607A07: yahoo_close (libyahoo2.c:806)
==27377==    by 0x416134EB: logout (yahoo.c:137)

-- 
Craig West         Ph: (416) 666-1645	|  It's not a bug,
[email protected]              	|  It's a feature...