From: <svn...@op...> - 2009-09-07 17:52:03
|
Author: scriptor Date: Mon Sep 7 19:51:45 2009 New Revision: 5763 URL: http://www.opensync.org/changeset/5763 Log: As it seems, I cannot free this from inside the LDAP plugin. Well, then so be it. Cf. valgrind output: ctest -R vg_osynctool_add_contact1_ldif -V ==6123== Thread 5: ==6123== Invalid read of size 4 ==6123== at 0x3217A14B32: g_atomic_int_exchange_and_add (in /lib64/libglib-2.0.so.0.2000.1) ==6123== by 0x4C7F73D: osync_objtype_sink_unref (opensync_objtype_sink.c:77) ==6123== by 0x4C7C842: osync_plugin_info_unref (opensync_plugin_info.c:67) ==6123== by 0x4C46ED8: _osync_client_message_handler (opensync_client.c:840) ==6123== by 0x4C6E84B: _incoming_dispatch (opensync_queue.c:399) ==6123== by 0x3217A3818D: g_main_context_dispatch (in /lib64/libglib-2.0.so.0.2000.1) ==6123== by 0x3217A3B8E7: (within /lib64/libglib-2.0.so.0.2000.1) ==6123== by 0x3217A3BD84: g_main_loop_run (in /lib64/libglib-2.0.so.0.2000.1) ==6123== by 0x3217A616E3: (within /lib64/libglib-2.0.so.0.2000.1) ==6123== by 0x3216E06869: start_thread (in /lib64/libpthread-2.10.1.so) ==6123== by 0x32162DE25C: clone (in /lib64/libc-2.10.1.so) ==6123== Address 0xc78d51c is 188 bytes inside a block of size 200 free'd ==6123== at 0x4A0633D: free (vg_replace_malloc.c:323) ==6123== by 0x8BA8FCB: ldap_plugin_free_env (ldap_plugin.c:137) ==6123== by 0x8BB1F87: ldap_plugin_finalize (ldap_plugin.c:4275) ==6123== by 0x4C46EA3: _osync_client_message_handler (opensync_client.c:828) ==6123== by 0x4C6E84B: _incoming_dispatch (opensync_queue.c:399) ==6123== by 0x3217A3818D: g_main_context_dispatch (in /lib64/libglib-2.0.so.0.2000.1) ==6123== by 0x3217A3B8E7: (within /lib64/libglib-2.0.so.0.2000.1) ==6123== by 0x3217A3BD84: g_main_loop_run (in /lib64/libglib-2.0.so.0.2000.1) ==6123== by 0x3217A616E3: (within /lib64/libglib-2.0.so.0.2000.1) ==6123== by 0x3216E06869: start_thread (in /lib64/libpthread-2.10.1.so) ==6123== by 0x32162DE25C: clone (in /lib64/libc-2.10.1.so) Modified: plugins/ldap-sync/src/ldap_plugin.c plugins/ldap-sync/tests/opensync.suppr Modified: plugins/ldap-sync/src/ldap_plugin.c ============================================================================== --- plugins/ldap-sync/src/ldap_plugin.c Mon Sep 7 03:01:09 2009 (r5762) +++ plugins/ldap-sync/src/ldap_plugin.c Mon Sep 7 19:51:45 2009 (r5763) @@ -133,9 +133,45 @@ env->sink_envs = g_list_remove(env->sink_envs, sinkenv); +/* + +I have commented out the following code, because of this +memory error: + +==6123== Thread 5: +==6123== Invalid read of size 4 +==6123== at 0x3217A14B32: g_atomic_int_exchange_and_add (in /lib64/libglib-2.0.so.0.2000.1) +==6123== by 0x4C7F73D: osync_objtype_sink_unref (opensync_objtype_sink.c:77) +==6123== by 0x4C7C842: osync_plugin_info_unref (opensync_plugin_info.c:67) +==6123== by 0x4C46ED8: _osync_client_message_handler (opensync_client.c:840) +==6123== by 0x4C6E84B: _incoming_dispatch (opensync_queue.c:399) +==6123== by 0x3217A3818D: g_main_context_dispatch (in /lib64/libglib-2.0.so.0.2000.1) +==6123== by 0x3217A3B8E7: (within /lib64/libglib-2.0.so.0.2000.1) +==6123== by 0x3217A3BD84: g_main_loop_run (in /lib64/libglib-2.0.so.0.2000.1) +==6123== by 0x3217A616E3: (within /lib64/libglib-2.0.so.0.2000.1) +==6123== by 0x3216E06869: start_thread (in /lib64/libpthread-2.10.1.so) +==6123== by 0x32162DE25C: clone (in /lib64/libc-2.10.1.so) +==6123== Address 0xc78d51c is 188 bytes inside a block of size 200 free'd +==6123== at 0x4A0633D: free (vg_replace_malloc.c:323) +==6123== by 0x8BA8FCB: ldap_plugin_free_env (ldap_plugin.c:137) +==6123== by 0x8BB1F87: ldap_plugin_finalize (ldap_plugin.c:4275) +==6123== by 0x4C46EA3: _osync_client_message_handler (opensync_client.c:828) +==6123== by 0x4C6E84B: _incoming_dispatch (opensync_queue.c:399) +==6123== by 0x3217A3818D: g_main_context_dispatch (in /lib64/libglib-2.0.so.0.2000.1) +==6123== by 0x3217A3B8E7: (within /lib64/libglib-2.0.so.0.2000.1) +==6123== by 0x3217A3BD84: g_main_loop_run (in /lib64/libglib-2.0.so.0.2000.1) +==6123== by 0x3217A616E3: (within /lib64/libglib-2.0.so.0.2000.1) +==6123== by 0x3216E06869: start_thread (in /lib64/libpthread-2.10.1.so) +==6123== by 0x32162DE25C: clone (in /lib64/libc-2.10.1.so) + + */ + +#if 0 if (sinkenv && sinkenv->sink) { osync_objtype_sink_unref(sinkenv->sink); ///< @sa ldap_plugin_initialize_sink() } +#endif + } env->sink_envs = NULL; Modified: plugins/ldap-sync/tests/opensync.suppr ============================================================================== --- plugins/ldap-sync/tests/opensync.suppr Mon Sep 7 03:01:09 2009 (r5762) +++ plugins/ldap-sync/tests/opensync.suppr Mon Sep 7 19:51:45 2009 (r5763) @@ -12,40 +12,6 @@ } -{ - <invalid read 1> - Memcheck:Addr4 - fun:g_atomic_int_exchange_and_add - fun:osync_objtype_sink_unref - fun:osync_plugin_info_unref - fun:_osync_client_handle_finalize - fun:_osync_client_message_handler - fun:_incoming_dispatch - fun:g_main_context_dispatch - obj:/lib/libglib-2.0.so.0.1800.3 - fun:g_main_loop_run - fun:osync_client_run_and_block - fun:main -} - - - -{ - <invalid_read 2> - Memcheck:Addr4 - fun:g_atomic_int_exchange_and_add - fun:osync_plugin_info_unref - fun:_osync_client_handle_finalize - fun:_osync_client_message_handler - fun:_incoming_dispatch - fun:g_main_context_dispatch - obj:/lib/libglib-2.0.so.0.1800.3 - fun:g_main_loop_run - obj:/lib/libglib-2.0.so.0.1800.3 - fun:start_thread - fun:clone -} - @@ -2194,23 +2160,6 @@ -{ - <ldap_plugin.c:78: osync_objtype_sink_unref(sinkenv->sink); and later, on: Invalid read of size 4 > - Memcheck:Addr4 - fun:g_atomic_int_exchange_and_add - fun:osync_objtype_sink_unref - fun:osync_plugin_info_unref - fun:_osync_client_handle_finalize - fun:_osync_client_message_handler - fun:_incoming_dispatch - fun:g_main_context_dispatch - obj:/lib/libglib-2.0.so.0.1800.3 - fun:g_main_loop_run - obj:/lib/libglib-2.0.so.0.1800.3 - fun:start_thread - fun:clone -} - @@ -4374,20 +4323,3 @@ -{ - <Invalid read of size 4 - because of ldap_plugin_free_env() in ldap_plugin_finalize() > - Memcheck:Addr4 - fun:g_atomic_int_exchange_and_add - fun:osync_objtype_sink_unref - fun:osync_plugin_info_unref - fun:_osync_client_handle_finalize - fun:_osync_client_message_handler - fun:_incoming_dispatch - fun:g_main_context_dispatch - obj:/lib64/libglib-2.0.so.0.2000.1 - fun:g_main_loop_run - obj:/lib64/libglib-2.0.so.0.2000.1 - fun:start_thread - fun:clone -} - |