http://bugzilla.moblin.org/show_bug.cgi?id=7857
pohly <[email protected]> changed: What |Removed |Added ---------------------------------------------------------------------------- Priority|Undecided |P2 Status|NEW |ASSIGNED --- Comment #4 from pohly <[email protected]> 2009-11-10 01:40:32 PST --- (In reply to comment #3) > > This points towards libical-internal memory handling. Running the binary > > under > > valgrind would provide more information. If you have such packages, can you > > also install -debug or -dbg packages for libecal and/or > > evolution-data-server > > before running valgrind? > > I've attached the output from valgrind using the normal packages, CentOS does > not seem to provide packages with debug info. I'll try to build them from > scratch. Not necessary, the valgrind output points towards a problem: libical inside your version of libecal seems to use the older memory handling (strings owned by libical) whereas SyncEvolution/libsynthesis seem to believe the new handling is in use (strings owned and freed by caller). Thus the invalid free. First in libsynthesis/src/platform_adapters/linux/platform_timezones.cpp: ==10651== Address 0x5951F28 is 0 bytes inside a block of size 200 free'd ==10651== at 0x4A0541E: free (vg_replace_malloc.c:233) ==10651== by 0x4D35C7A: sysync::loadSystemZoneDefinitions(sysync::GZones*) (platform_timezones.cpp:188) Then in libical: ==10651== at 0x4A0541E: free (vg_replace_malloc.c:233) ==10651== by 0x3702E69169: icalmemory_add_tmp_buffer (in /usr/lib64/libecal-1.2.so.7.0.2) ==10651== by 0x3702E69215: icalmemory_tmp_buffer (in /usr/lib64/libecal-1.2.so.7.0.2) platform_timezones.cpp should support both memory handling models. Detecting it is a bit convoluted because upstream libical changed back to the older model later on and introduced new _p calls instead. You did not configure with --enable-evolution-compatibility, did you? In that case the check is done at compile time, depending on LIBICAL_MEMFIXES being defined by libical.h. Ah, that's it: # ifdef LIBICAL_MEMFIXES // new-style Evolution libical: memory must be freed by caller # define ICAL_FREE(_x) free(_x) # else # define ICAL_FREE(_x) free(_x) # endif The second define should be # else # define ICAL_FREE(_x) # endif Can you recompile with that fix and try again? -- Configure bugmail: http://bugzilla.moblin.org/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are watching someone on the CC list of the bug. _______________________________________________ Syncevolution-issues mailing list [email protected] http://lists.syncevolution.org/listinfo/syncevolution-issues
