[sylpheed:31830] addrbook ldap lookup crashes sylpheed

Rich Coe Richard.Coe at med.ge.com
Fri Oct 12 00:42:48 JST 2007


Hi Hiroyuki, 

I've been having a problem with ldap address book lookups that I finally 
got around to investigating.  Basically, if I make too many lookups (> 4),
sylpheed crashes.  

I ran valgrind (output below).  It looks like gtk is still holding onto one
or more addresses that sylpheed address book cache has freed.

If I'm running the wrong gtk version, please clue me in ...
    gtk+-2.8.20

==25540== Memcheck, a memory error detector.
==25540== Copyright (C) 2002-2006, and GNU GPL'd, by Julian Seward et al.
==25540== Using LibVEX rev 1658, a library for dynamic binary translation.
==25540== Copyright (C) 2004-2006, and GNU GPL'd, by OpenWorks LLP.
==25540== Using valgrind-3.2.1, a dynamic binary instrumentation framework.
==25540== Copyright (C) 2000-2006, and GNU GPL'd, by Julian Seward et al.
==25540== For more details, rerun with: -v
==25540== 
==25540== My PID = 25540, parent PID = 3463.  Prog and args are:
==25540==    sylpheed
==25540== 
   [....]
==25540== 
==25540== Invalid read of size 4
==25540==    at 0x80BBE02: addressbook_menuitem_set_sensitive (addressbook.c:1137)
==25540==    by 0x414DC4B: (within /usr/lib/libgtk-x11-2.0.so.0.800.20)
==25540==    by 0x4498DDA: g_closure_invoke (in /usr/lib/libgobject-2.0.so.0.1000.3)
==25540==    by 0x44AE677: (within /usr/lib/libgobject-2.0.so.0.1000.3)
==25540==    by 0x44AF5D3: g_signal_emit_valist (in /usr/lib/libgobject-2.0.so.0.1000.3)
==25540==    by 0x419A7C0: gtk_signal_emit (in /usr/lib/libgtk-x11-2.0.so.0.800.20)
==25540==    by 0x40BDD91: gtk_ctree_select (in /usr/lib/libgtk-x11-2.0.so.0.800.20)
==25540==    by 0x40C2960: (within /usr/lib/libgtk-x11-2.0.so.0.800.20)
==25540==    by 0x409D05A: (within /usr/lib/libgtk-x11-2.0.so.0.800.20)
==25540==    by 0x414B3EF: (within /usr/lib/libgtk-x11-2.0.so.0.800.20)
==25540==    by 0x4499118: (within /usr/lib/libgobject-2.0.so.0.1000.3)
==25540==    by 0x4498DDA: g_closure_invoke (in /usr/lib/libgobject-2.0.so.0.1000.3)
==25540==  Address 0x5686C60 is 0 bytes inside a block of size 48 free'd
==25540==    at 0x401D0C5: free (vg_replace_malloc.c:233)
==25540==    by 0x4567D60: g_free (in /usr/lib/libglib-2.0.so.0.1000.3)
==25540==    by 0x80C3F88: addrcache_free_item_vis (addrcache.c:104)
==25540==    by 0x45544E7: (within /usr/lib/libglib-2.0.so.0.1000.3)
==25540==    by 0x80C3FB8: addrcache_free_item_hash (addrcache.c:123)
==25540==    by 0x80C406F: addrcache_clear (addrcache.c:154)
==25540==    by 0x80D337A: syldap_search (syldap.c:574)
==25540==    by 0x80D3988: syldap_read_data (syldap.c:665)
==25540==    by 0x44F420D: start_thread (in /lib/tls/libpthread-2.3.6.so)
==25540==    by 0x481C0DD: clone (in /lib/tls/libc-2.3.6.so)
==25540== 
==25540== Invalid read of size 4
==25540==    at 0x80BBBD7: addressbook_to_clicked (addressbook.c:1029)
==25540==    by 0x44AFCB7: g_cclosure_marshal_VOID__VOID (in /usr/lib/libgobject-2.0.so.0.1000.3)
==25540==    by 0x4498DDA: g_closure_invoke (in /usr/lib/libgobject-2.0.so.0.1000.3)
==25540==    by 0x44AE677: (within /usr/lib/libgobject-2.0.so.0.1000.3)
==25540==    by 0x44AF5D3: g_signal_emit_valist (in /usr/lib/libgobject-2.0.so.0.1000.3)
==25540==    by 0x44AF8C5: g_signal_emit (in /usr/lib/libgobject-2.0.so.0.1000.3)
==25540==    by 0x4077CD0: gtk_button_clicked (in /usr/lib/libgtk-x11-2.0.so.0.800.20)
==25540==    by 0x407989B: (within /usr/lib/libgtk-x11-2.0.so.0.800.20)
==25540==    by 0x44AFCB7: g_cclosure_marshal_VOID__VOID (in /usr/lib/libgobject-2.0.so.0.1000.3)
==25540==    by 0x4499118: (within /usr/lib/libgobject-2.0.so.0.1000.3)
==25540==    by 0x4498DDA: g_closure_invoke (in /usr/lib/libgobject-2.0.so.0.1000.3)
==25540==    by 0x44ADF76: (within /usr/lib/libgobject-2.0.so.0.1000.3)
==25540==  Address 0x5686C60 is not stack'd, malloc'd or (recently) free'd
==25540== 
==25540== Invalid read of size 4
==25540==    at 0x80BBAB8: addressbook_format_address (addressbook.c:968)
==25540==    by 0x80BBBEF: addressbook_to_clicked (addressbook.c:1030)
==25540==    by 0x44AFCB7: g_cclosure_marshal_VOID__VOID (in /usr/lib/libgobject-2.0.so.0.1000.3)
==25540==    by 0x4498DDA: g_closure_invoke (in /usr/lib/libgobject-2.0.so.0.1000.3)
==25540==    by 0x44AE677: (within /usr/lib/libgobject-2.0.so.0.1000.3)
==25540==    by 0x44AF5D3: g_signal_emit_valist (in /usr/lib/libgobject-2.0.so.0.1000.3)
==25540==    by 0x44AF8C5: g_signal_emit (in /usr/lib/libgobject-2.0.so.0.1000.3)
==25540==    by 0x4077CD0: gtk_button_clicked (in /usr/lib/libgtk-x11-2.0.so.0.800.20)
==25540==    by 0x407989B: (within /usr/lib/libgtk-x11-2.0.so.0.800.20)
==25540==    by 0x44AFCB7: g_cclosure_marshal_VOID__VOID (in /usr/lib/libgobject-2.0.so.0.1000.3)
==25540==    by 0x4499118: (within /usr/lib/libgobject-2.0.so.0.1000.3)
==25540==    by 0x4498DDA: g_closure_invoke (in /usr/lib/libgobject-2.0.so.0.1000.3)
==25540==  Address 0x5686C60 is 0 bytes inside a block of size 28 free'd
==25540==    at 0x401D0C5: free (vg_replace_malloc.c:233)
==25540==    by 0x4567D60: g_free (in /usr/lib/libglib-2.0.so.0.1000.3)
==25540==    by 0x433AA50: gdk_region_destroy (in /usr/lib/libgdk-x11-2.0.so.0.800.20)
==25540==    by 0x432CAF7: (within /usr/lib/libgdk-x11-2.0.so.0.800.20)
==25540==    by 0x41A70AB: (within /usr/lib/libgtk-x11-2.0.so.0.800.20)
==25540==    by 0x41AF1EA: gtk_paint_shadow (in /usr/lib/libgtk-x11-2.0.so.0.800.20)
==25540==    by 0x41AF690: (within /usr/lib/libgtk-x11-2.0.so.0.800.20)
==25540==    by 0x41AEC4A: gtk_paint_box (in /usr/lib/libgtk-x11-2.0.so.0.800.20)
==25540==    by 0x417FD11: (within /usr/lib/libgtk-x11-2.0.so.0.800.20)
==25540==    by 0x4181849: (within /usr/lib/libgtk-x11-2.0.so.0.800.20)
==25540==    by 0x414B3EF: (within /usr/lib/libgtk-x11-2.0.so.0.800.20)
==25540==    by 0x4499118: (within /usr/lib/libgobject-2.0.so.0.1000.3)
==25540== 
==25540== Invalid read of size 4
==25540==    at 0x80BBAF0: addressbook_format_address (addressbook.c:991)
==25540==    by 0x80BBBEF: addressbook_to_clicked (addressbook.c:1030)
==25540==    by 0x44AFCB7: g_cclosure_marshal_VOID__VOID (in /usr/lib/libgobject-2.0.so.0.1000.3)
==25540==    by 0x4498DDA: g_closure_invoke (in /usr/lib/libgobject-2.0.so.0.1000.3)
==25540==    by 0x44AE677: (within /usr/lib/libgobject-2.0.so.0.1000.3)
==25540==    by 0x44AF5D3: g_signal_emit_valist (in /usr/lib/libgobject-2.0.so.0.1000.3)
==25540==    by 0x44AF8C5: g_signal_emit (in /usr/lib/libgobject-2.0.so.0.1000.3)
==25540==    by 0x4077CD0: gtk_button_clicked (in /usr/lib/libgtk-x11-2.0.so.0.800.20)
==25540==    by 0x407989B: (within /usr/lib/libgtk-x11-2.0.so.0.800.20)
==25540==    by 0x44AFCB7: g_cclosure_marshal_VOID__VOID (in /usr/lib/libgobject-2.0.so.0.1000.3)
==25540==    by 0x4499118: (within /usr/lib/libgobject-2.0.so.0.1000.3)
==25540==    by 0x4498DDA: g_closure_invoke (in /usr/lib/libgobject-2.0.so.0.1000.3)
==25540==  Address 0x5686C84 is 8 bytes after a block of size 28 free'd
==25540==    at 0x401D0C5: free (vg_replace_malloc.c:233)
==25540==    by 0x4567D60: g_free (in /usr/lib/libglib-2.0.so.0.1000.3)
==25540==    by 0x433AA50: gdk_region_destroy (in /usr/lib/libgdk-x11-2.0.so.0.800.20)
==25540==    by 0x432CAF7: (within /usr/lib/libgdk-x11-2.0.so.0.800.20)
==25540==    by 0x41A70AB: (within /usr/lib/libgtk-x11-2.0.so.0.800.20)
==25540==    by 0x41AF1EA: gtk_paint_shadow (in /usr/lib/libgtk-x11-2.0.so.0.800.20)
==25540==    by 0x41AF690: (within /usr/lib/libgtk-x11-2.0.so.0.800.20)
==25540==    by 0x41AEC4A: gtk_paint_box (in /usr/lib/libgtk-x11-2.0.so.0.800.20)
==25540==    by 0x417FD11: (within /usr/lib/libgtk-x11-2.0.so.0.800.20)
==25540==    by 0x4181849: (within /usr/lib/libgtk-x11-2.0.so.0.800.20)
==25540==    by 0x414B3EF: (within /usr/lib/libgtk-x11-2.0.so.0.800.20)
==25540==    by 0x4499118: (within /usr/lib/libgobject-2.0.so.0.1000.3)
==25540== 
==25540== Invalid read of size 4
==25540==    at 0x80BBAF5: addressbook_format_address (addressbook.c:993)
==25540==    by 0x80BBBEF: addressbook_to_clicked (addressbook.c:1030)
==25540==    by 0x44AFCB7: g_cclosure_marshal_VOID__VOID (in /usr/lib/libgobject-2.0.so.0.1000.3)
==25540==    by 0x4498DDA: g_closure_invoke (in /usr/lib/libgobject-2.0.so.0.1000.3)
==25540==    by 0x44AE677: (within /usr/lib/libgobject-2.0.so.0.1000.3)
==25540==    by 0x44AF5D3: g_signal_emit_valist (in /usr/lib/libgobject-2.0.so.0.1000.3)
==25540==    by 0x44AF8C5: g_signal_emit (in /usr/lib/libgobject-2.0.so.0.1000.3)
==25540==    by 0x4077CD0: gtk_button_clicked (in /usr/lib/libgtk-x11-2.0.so.0.800.20)
==25540==    by 0x407989B: (within /usr/lib/libgtk-x11-2.0.so.0.800.20)
==25540==    by 0x44AFCB7: g_cclosure_marshal_VOID__VOID (in /usr/lib/libgobject-2.0.so.0.1000.3)
==25540==    by 0x4499118: (within /usr/lib/libgobject-2.0.so.0.1000.3)
==25540==    by 0x4498DDA: g_closure_invoke (in /usr/lib/libgobject-2.0.so.0.1000.3)
==25540==  Address 0x5686C64 is 4 bytes inside a block of size 28 free'd
==25540==    at 0x401D0C5: free (vg_replace_malloc.c:233)
==25540==    by 0x4567D60: g_free (in /usr/lib/libglib-2.0.so.0.1000.3)
==25540==    by 0x433AA50: gdk_region_destroy (in /usr/lib/libgdk-x11-2.0.so.0.800.20)
==25540==    by 0x432CAF7: (within /usr/lib/libgdk-x11-2.0.so.0.800.20)
==25540==    by 0x41A70AB: (within /usr/lib/libgtk-x11-2.0.so.0.800.20)
==25540==    by 0x41AF1EA: gtk_paint_shadow (in /usr/lib/libgtk-x11-2.0.so.0.800.20)
==25540==    by 0x41AF690: (within /usr/lib/libgtk-x11-2.0.so.0.800.20)
==25540==    by 0x41AEC4A: gtk_paint_box (in /usr/lib/libgtk-x11-2.0.so.0.800.20)
==25540==    by 0x417FD11: (within /usr/lib/libgtk-x11-2.0.so.0.800.20)
==25540==    by 0x4181849: (within /usr/lib/libgtk-x11-2.0.so.0.800.20)
==25540==    by 0x414B3EF: (within /usr/lib/libgtk-x11-2.0.so.0.800.20)
==25540==    by 0x4499118: (within /usr/lib/libgobject-2.0.so.0.1000.3)
==25540== 
==25540== Invalid read of size 4
==25540==    at 0x80BBAFA: addressbook_format_address (addressbook.c:995)
==25540==    by 0x80BBBEF: addressbook_to_clicked (addressbook.c:1030)
==25540==    by 0x44AFCB7: g_cclosure_marshal_VOID__VOID (in /usr/lib/libgobject-2.0.so.0.1000.3)
==25540==    by 0x4498DDA: g_closure_invoke (in /usr/lib/libgobject-2.0.so.0.1000.3)
==25540==    by 0x44AE677: (within /usr/lib/libgobject-2.0.so.0.1000.3)
==25540==    by 0x44AF5D3: g_signal_emit_valist (in /usr/lib/libgobject-2.0.so.0.1000.3)
==25540==    by 0x44AF8C5: g_signal_emit (in /usr/lib/libgobject-2.0.so.0.1000.3)
==25540==    by 0x4077CD0: gtk_button_clicked (in /usr/lib/libgtk-x11-2.0.so.0.800.20)
==25540==    by 0x407989B: (within /usr/lib/libgtk-x11-2.0.so.0.800.20)
==25540==    by 0x44AFCB7: g_cclosure_marshal_VOID__VOID (in /usr/lib/libgobject-2.0.so.0.1000.3)
==25540==    by 0x4499118: (within /usr/lib/libgobject-2.0.so.0.1000.3)
==25540==    by 0x4498DDA: g_closure_invoke (in /usr/lib/libgobject-2.0.so.0.1000.3)
==25540==  Address 0x14 is not stack'd, malloc'd or (recently) free'd
==25540== 
==25540== Process terminating with default action of signal 11 (SIGSEGV)
==25540==  Access not within mapped region at address 0x14
==25540==    at 0x80BBAFA: addressbook_format_address (addressbook.c:995)
==25540==    by 0x80BBBEF: addressbook_to_clicked (addressbook.c:1030)
==25540==    by 0x44AFCB7: g_cclosure_marshal_VOID__VOID (in /usr/lib/libgobject-2.0.so.0.1000.3)
==25540==    by 0x4498DDA: g_closure_invoke (in /usr/lib/libgobject-2.0.so.0.1000.3)
==25540==    by 0x44AE677: (within /usr/lib/libgobject-2.0.so.0.1000.3)
==25540==    by 0x44AF5D3: g_signal_emit_valist (in /usr/lib/libgobject-2.0.so.0.1000.3)
==25540==    by 0x44AF8C5: g_signal_emit (in /usr/lib/libgobject-2.0.so.0.1000.3)
==25540==    by 0x4077CD0: gtk_button_clicked (in /usr/lib/libgtk-x11-2.0.so.0.800.20)
==25540==    by 0x407989B: (within /usr/lib/libgtk-x11-2.0.so.0.800.20)
==25540==    by 0x44AFCB7: g_cclosure_marshal_VOID__VOID (in /usr/lib/libgobject-2.0.so.0.1000.3)
==25540==    by 0x4499118: (within /usr/lib/libgobject-2.0.so.0.1000.3)
==25540==    by 0x4498DDA: g_closure_invoke (in /usr/lib/libgobject-2.0.so.0.1000.3)
==25540== 
==25540== ERROR SUMMARY: 1169 errors from 12 contexts (suppressed: 124 from 4)
==25540== malloc/free: in use at exit: 3,959,874 bytes in 45,842 blocks.
==25540== malloc/free: 466,112 allocs, 420,270 frees, 228,437,980 bytes allocated.
==25540== For counts of detected errors, rerun with: -v
==25540== searching for pointers to 45,842 not-freed blocks.
==25540== checked 20,748,072 bytes.
==25540== 
==25540== LEAK SUMMARY:
==25540==    definitely lost: 272,738 bytes in 3,581 blocks.
==25540==      possibly lost: 280,482 bytes in 309 blocks.
==25540==    still reachable: 3,406,654 bytes in 41,952 blocks.
==25540==         suppressed: 0 bytes in 0 blocks.
==25540== Use --leak-check=full to see details of leaked memory.


More information about the Sylpheed mailing list