==6873== Invalid free() / delete / delete[]
==6873== at 0x4C22B2E: free (vg_replace_malloc.c:323)
==6873== by 0x8FB3165: g_slice_free_chain_with_offset (gslice.c:961)
==6873== by 0xEC9AC05: add_source (e-cal-backend-contacts.c:108)
==6873== by 0xEC9AD6A: source_group_added_cb (e-cal-backend-contacts.c:299)
==6873== by 0xEC9AE9E: e_cal_backend_contacts_open (e-cal-backend-contacts.c:751)
==6873== by 0x69D415A: e_cal_backend_sync_open (e-cal-backend-sync.c:186)
==6873== by 0x69D425F: _e_cal_backend_open (e-cal-backend-sync.c:706)
==6873== by 0x8292755: ORBit_small_invoke_adaptor (orbit-small.c:844)
==6873== by 0x82A191D: ORBit_POAObject_handle_request (poa.c:1351)
==6873== by 0x82A1ED9: ORBit_POAObject_invoke_incoming_request (poa.c:1421)
==6873== by 0x828BAB4: giop_thread_queue_process (giop.c:771)
==6873== by 0x828C24E: giop_request_handler_thread (giop.c:481)
==6873== by 0x8FBEBF6: g_thread_pool_thread_proxy (gthreadpool.c:265)
==6873== by 0x8FBD053: g_thread_create_proxy (gthread.c:635)
==6873== by 0x9A6D3F6: start_thread (in /lib/libpthread-2.7.so)
==6873== by 0x9D5AB2C: clone (in /lib/libc-2.7.so)
==6873== Address 0xcf36608 is 0 bytes inside a block of size 24 free'd
==6873== at 0x4C22B2E: free (vg_replace_malloc.c:323)
==6873== by 0x8FB3165: g_slice_free_chain_with_offset (gslice.c:961)
==6873== by 0xEC9ABEB: add_source (e-cal-backend-contacts.c:105)
==6873== by 0xEC9AD6A: source_group_added_cb (e-cal-backend-contacts.c:299)
==6873== by 0xEC9AE9E: e_cal_backend_contacts_open (e-cal-backend-contacts.c:751)
==6873== by 0x69D415A: e_cal_backend_sync_open (e-cal-backend-sync.c:186)
==6873== by 0x69D425F: _e_cal_backend_open (e-cal-backend-sync.c:706)
==6873== by 0x8292755: ORBit_small_invoke_adaptor (orbit-small.c:844)
==6873== by 0x82A191D: ORBit_POAObject_handle_request (poa.c:1351)
==6873== by 0x82A1ED9: ORBit_POAObject_invoke_incoming_request (poa.c:1421)
==6873== by 0x828BAB4: giop_thread_queue_process (giop.c:771)
==6873== by 0x828C24E: giop_request_handler_thread (giop.c:481)
==6873== by 0x8FBEBF6: g_thread_pool_thread_proxy (gthreadpool.c:265)
==6873== by 0x8FBD053: g_thread_create_proxy (gthread.c:635)
==6873== by 0x9A6D3F6: start_thread (in /lib/libpthread-2.7.so)
==6873== by 0x9D5AB2C: clone (in /lib/libc-2.7.so)
the corresponding code has an obvious double free on the fields variable
running e-d-s under valgrind showed this error
==6873== Invalid free() / delete / delete[] malloc. c:323) free_chain_ with_offset (gslice.c:961) backend- contacts. c:108) group_added_ cb (e-cal- backend- contacts. c:299) contacts_ open (e-cal- backend- contacts. c:751) sync_open (e-cal- backend- sync.c: 186) backend- sync.c: 706) invoke_ adaptor (orbit-small.c:844) _handle_ request (poa.c:1351) _invoke_ incoming_ request (poa.c:1421) queue_process (giop.c:771) handler_ thread (giop.c:481) pool_thread_ proxy (gthreadpool.c:265) create_ proxy (gthread.c:635) -2.7.so) malloc. c:323) free_chain_ with_offset (gslice.c:961) backend- contacts. c:105) group_added_ cb (e-cal- backend- contacts. c:299) contacts_ open (e-cal- backend- contacts. c:751) sync_open (e-cal- backend- sync.c: 186) backend- sync.c: 706) invoke_ adaptor (orbit-small.c:844) _handle_ request (poa.c:1351) _invoke_ incoming_ request (poa.c:1421) queue_process (giop.c:771) handler_ thread (giop.c:481) pool_thread_ proxy (gthreadpool.c:265) create_ proxy (gthread.c:635) -2.7.so)
==6873== at 0x4C22B2E: free (vg_replace_
==6873== by 0x8FB3165: g_slice_
==6873== by 0xEC9AC05: add_source (e-cal-
==6873== by 0xEC9AD6A: source_
==6873== by 0xEC9AE9E: e_cal_backend_
==6873== by 0x69D415A: e_cal_backend_
==6873== by 0x69D425F: _e_cal_backend_open (e-cal-
==6873== by 0x8292755: ORBit_small_
==6873== by 0x82A191D: ORBit_POAObject
==6873== by 0x82A1ED9: ORBit_POAObject
==6873== by 0x828BAB4: giop_thread_
==6873== by 0x828C24E: giop_request_
==6873== by 0x8FBEBF6: g_thread_
==6873== by 0x8FBD053: g_thread_
==6873== by 0x9A6D3F6: start_thread (in /lib/libpthread
==6873== by 0x9D5AB2C: clone (in /lib/libc-2.7.so)
==6873== Address 0xcf36608 is 0 bytes inside a block of size 24 free'd
==6873== at 0x4C22B2E: free (vg_replace_
==6873== by 0x8FB3165: g_slice_
==6873== by 0xEC9ABEB: add_source (e-cal-
==6873== by 0xEC9AD6A: source_
==6873== by 0xEC9AE9E: e_cal_backend_
==6873== by 0x69D415A: e_cal_backend_
==6873== by 0x69D425F: _e_cal_backend_open (e-cal-
==6873== by 0x8292755: ORBit_small_
==6873== by 0x82A191D: ORBit_POAObject
==6873== by 0x82A1ED9: ORBit_POAObject
==6873== by 0x828BAB4: giop_thread_
==6873== by 0x828C24E: giop_request_
==6873== by 0x8FBEBF6: g_thread_
==6873== by 0x8FBD053: g_thread_
==6873== by 0x9A6D3F6: start_thread (in /lib/libpthread
==6873== by 0x9D5AB2C: clone (in /lib/libc-2.7.so)
the corresponding code has an obvious double free on the fields variable