GNOME Bugzilla – Bug 633967
Invalid read
Last modified: 2013-09-13 01:11:48 UTC
evolution 2.91.2 Deleted cache of mapi account, started evolution in mailer view , 'check mail in all folders' option is enabled. Noticed invalid read on start up. ==9216== Invalid read of size 4 ==9216== at 0x45DFAC8: icaltzutil_fetch_timezone (icaltz-util.c:429) ==9216== by 0x45E0F17: icaltimezone_load_builtin_timezone (icaltimezone.c:1819) ==9216== by 0x45E2A16: icaltimezone_get_component (icaltimezone.c:1243) ==9216== by 0x6575D85: cal_shell_backend_init (e-cal-shell-backend.c:798) ==9216== by 0x5941C65: g_type_create_instance (gtype.c:1887) ==9216== by 0x592808B: g_object_constructor (gobject.c:1602) ==9216== by 0x4041C0C: shell_backend_constructor (e-shell-backend.c:131) ==9216== by 0x5927AA8: g_object_newv (gobject.c:1467) ==9216== by 0x592801C: g_object_new_valist (gobject.c:1583) ==9216== by 0x5927515: g_object_new (gobject.c:1301) ==9216== by 0x4426AEF: extensible_load_extension (e-extensible.c:96) ==9216== by 0x443C060: e_type_traverse (e-util.c:563) ==9216== by 0x443C037: e_type_traverse (e-util.c:557) ==9216== by 0x4426C57: e_extensible_load_extensions (e-extensible.c:138) ==9216== by 0x4426D4D: e_extensible_list_extensions (e-extensible.c:168) ==9216== by 0x403FD6A: e_shell_load_modules (e-shell.c:1296) ==9216== by 0x804B11F: main (main.c:667) ==9216== Address 0x62d6020 is 0 bytes after a block of size 0 alloc'd ==9216== at 0x40260BB: calloc (in /usr/lib/valgrind/vgpreload_memcheck-x86-linux.so) ==9216== by 0x45DF3F8: icaltzutil_fetch_timezone (icaltz-util.c:327) ==9216== by 0x45E0F17: icaltimezone_load_builtin_timezone (icaltimezone.c:1819) ==9216== by 0x45E2A16: icaltimezone_get_component (icaltimezone.c:1243) ==9216== by 0x6575D85: cal_shell_backend_init (e-cal-shell-backend.c:798) ==9216== by 0x5941C65: g_type_create_instance (gtype.c:1887) ==9216== by 0x592808B: g_object_constructor (gobject.c:1602) ==9216== by 0x4041C0C: shell_backend_constructor (e-shell-backend.c:131) ==9216== by 0x5927AA8: g_object_newv (gobject.c:1467) ==9216== by 0x592801C: g_object_new_valist (gobject.c:1583) ==9216== by 0x5927515: g_object_new (gobject.c:1301) ==9216== by 0x4426AEF: extensible_load_extension (e-extensible.c:96) ==9216== by 0x443C060: e_type_traverse (e-util.c:563) ==9216== by 0x443C037: e_type_traverse (e-util.c:557) ==9216== by 0x4426C57: e_extensible_load_extensions (e-extensible.c:138) ==9216== by 0x4426D4D: e_extensible_list_extensions (e-extensible.c:168) ==9216== by 0x403FD6A: e_shell_load_modules (e-shell.c:1296) ==9216== by 0x804B11F: main (main.c:667) ==9216==
That's the workaround I added for the timezone loading race that was causing crashes. I don't think the invalid read is ours. Our code is just a simple for-loop. »·······builtin_timezones = icaltimezone_get_builtin_timezones (); »·······for (ii = 0; ii < builtin_timezones->num_elements; ii++) { »·······»·······icaltimezone *zone; »·······»·······zone = icalarray_element_at (builtin_timezones, ii); »·······»·······icaltimezone_get_component (zone); »·······}
I sent a mail to libical upstream with the issue and test.c example file, which exhibits the issue. [1] http://sourceforge.net/mailarchive/forum.php?thread_name=1295433533.19164.4.camel%40zyxPad&forum_name=freeassociation-devel