GNOME Bugzilla – Bug 778094
invalid read and writes
Last modified: 2018-09-21 13:57:30 UTC
Original bug: https://bugs.debian.org/839444 Looks like libgda 5.2.4 has some invalid memory/object management. This can be triggered when running some tests in a loop. From: https://bugs.debian.org/cgi-bin/bugreport.cgi?att=1;bug=839444;filename=vgdump.txt.gz;msg=83 Interesting part follows: ==27399== Invalid read of size 8 ==27399== at 0x4F08F95: vcontext_object_weak_notify_cb (gda-vconnection-data-model.c:607) ==27399== by 0x518DB0E: ??? (in /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0.5000.2) ==27399== by 0x518EC04: g_object_unref (in /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0.5000.2) ==27399== by 0x4E90A8F: apply_filter_statement (gda-data-proxy.c:3133) ==27399== by 0x4E965C8: gda_data_proxy_set_filter_expr (gda-data-proxy.c:3265) ==27399== by 0x10AF1D: check_proxy_set_filter (check_data_proxy.c:1577) ==27399== by 0x10B7EC: do_test_common_read (check_data_proxy.c:752) ==27399== by 0x10A369: main (check_data_proxy.c:119) ==27399== Address 0xbc23c10 is 16 bytes inside a block of size 24 free'd ==27399== at 0x4C2BDDB: free (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) ==27399== by 0x5405BF7: ??? (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.5000.2) ==27399== by 0x4F08F94: vcontext_object_weak_notify_cb (gda-vconnection-data-model.c:606) ==27399== by 0x518DB0E: ??? (in /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0.5000.2) ==27399== by 0x518EC04: g_object_unref (in /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0.5000.2) ==27399== by 0x4E90A8F: apply_filter_statement (gda-data-proxy.c:3133) ==27399== by 0x4E965C8: gda_data_proxy_set_filter_expr (gda-data-proxy.c:3265) ==27399== by 0x10AF1D: check_proxy_set_filter (check_data_proxy.c:1577) ==27399== by 0x10B7EC: do_test_common_read (check_data_proxy.c:752) ==27399== by 0x10A369: main (check_data_proxy.c:119) ==27399== Block was alloc'd at ==27399== at 0x4C2CBC5: calloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) ==27399== by 0x541CE60: g_malloc0 (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.5000.2) ==27399== by 0x4F09DC9: _gda_vconnection_change_working_obj (gda-vconnection-data-model.c:689) ==27399== by 0x4F076D8: _gda_sqlite_recordset_new (gda-sqlite-recordset.c:298) ==27399== by 0x4F014A6: gda_sqlite_provider_statement_execute (gda-sqlite-provider.c:3406) ==27399== by 0x4F0CB3E: gda_vprovider_data_model_statement_execute (gda-vprovider-data-model.c:453) ==27399== by 0x4E7681F: gda_connection_statement_execute_v (gda-connection.c:3544) ==27399== by 0x4E7823F: gda_connection_statement_execute_select (gda-connection.c:3830) ==27399== by 0x4E90A66: apply_filter_statement (gda-data-proxy.c:3120) ==27399== by 0x4E965C8: gda_data_proxy_set_filter_expr (gda-data-proxy.c:3265) ==27399== by 0x10AF1D: check_proxy_set_filter (check_data_proxy.c:1577) ==27399== by 0x10B7EC: do_test_common_read (check_data_proxy.c:752) ==27399== by 0x10A369: main (check_data_proxy.c:119) ==27399== ==27399== Invalid write of size 8 ==27399== at 0x544BD65: g_nullify_pointer (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.5000.2) ==27399== by 0x518DB0E: ??? (in /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0.5000.2) ==27399== by 0x518EC04: g_object_unref (in /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0.5000.2) ==27399== by 0x4E96671: gda_data_proxy_set_filter_expr (gda-data-proxy.c:3262) ==27399== by 0x10AF1D: check_proxy_set_filter (check_data_proxy.c:1577) ==27399== by 0x10B888: do_test_common_read (check_data_proxy.c:769) ==27399== by 0x10A369: main (check_data_proxy.c:119) ==27399== Address 0xbc214e0 is 0 bytes inside a block of size 8 free'd ==27399== at 0x4C2BDDB: free (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) ==27399== by 0x4EF060C: gda_pstmt_finalize (gda-pstmt.c:122) ==27399== by 0x518EC79: g_object_unref (in /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0.5000.2) ==27399== by 0x5405BF7: ??? (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.5000.2) ==27399== by 0x4E6E210: statement_weak_notify_cb (gda-connection.c:6421) ==27399== by 0x518DB0E: ??? (in /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0.5000.2) ==27399== by 0x518EC04: g_object_unref (in /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0.5000.2) ==27399== by 0x4E96671: gda_data_proxy_set_filter_expr (gda-data-proxy.c:3262) ==27399== by 0x10AF1D: check_proxy_set_filter (check_data_proxy.c:1577) ==27399== by 0x10B888: do_test_common_read (check_data_proxy.c:769) ==27399== by 0x10A369: main (check_data_proxy.c:119) ==27399== Block was alloc'd at ==27399== at 0x4C2CBC5: calloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) ==27399== by 0x541CE60: g_malloc0 (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.5000.2) ==27399== by 0x4EF07D9: gda_pstmt_init (gda-pstmt.c:86) ==27399== by 0x51AD30E: g_type_create_instance (in /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0.5000.2) ==27399== by 0x518F1FA: ??? (in /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0.5000.2) ==27399== by 0x5190C0C: g_object_newv (in /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0.5000.2) ==27399== by 0x51913C3: g_object_new (in /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0.5000.2) ==27399== by 0x4F062B4: _gda_sqlite_pstmt_new (gda-sqlite-pstmt.c:108) ==27399== by 0x4F00055: real_prepare (gda-sqlite-provider.c:2601) ==27399== by 0x4F00415: gda_sqlite_provider_statement_prepare (gda-sqlite-provider.c:2401) ==27399== by 0x4F019A4: gda_sqlite_provider_statement_execute (gda-sqlite-provider.c:2976) ==27399== by 0x4F0CB3E: gda_vprovider_data_model_statement_execute (gda-vprovider-data-model.c:453) ==27399== by 0x4E7681F: gda_connection_statement_execute_v (gda-connection.c:3544) ==27399== by 0x4E7823F: gda_connection_statement_execute_select (gda-connection.c:3830) ==27399== by 0x4E90A66: apply_filter_statement (gda-data-proxy.c:3120) ==27399== by 0x4E965C8: gda_data_proxy_set_filter_expr (gda-data-proxy.c:3265) ==27399== by 0x10AF1D: check_proxy_set_filter (check_data_proxy.c:1577) ==27399== by 0x10B7EC: do_test_common_read (check_data_proxy.c:752) ==27399== by 0x10A369: main (check_data_proxy.c:119) ==27399== ==27399== Invalid write of size 8 ==27399== at 0x544BD65: g_nullify_pointer (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.5000.2) ==27399== by 0x518DB0E: ??? (in /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0.5000.2) ==27399== by 0x518EC04: g_object_unref (in /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0.5000.2) ==27399== by 0x4E965B1: gda_data_proxy_set_filter_expr (gda-data-proxy.c:3218) ==27399== by 0x10AF1D: check_proxy_set_filter (check_data_proxy.c:1577) ==27399== by 0x10B9B8: do_test_common_read (check_data_proxy.c:811) ==27399== by 0x10A369: main (check_data_proxy.c:119) ==27399== Address 0xbc85060 is 0 bytes inside a block of size 8 free'd ==27399== at 0x4C2BDDB: free (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) ==27399== by 0x4EF060C: gda_pstmt_finalize (gda-pstmt.c:122) ==27399== by 0x518EC79: g_object_unref (in /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0.5000.2) ==27399== by 0x5405BF7: ??? (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.5000.2) ==27399== by 0x4E6E210: statement_weak_notify_cb (gda-connection.c:6421) ==27399== by 0x518DB0E: ??? (in /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0.5000.2) ==27399== by 0x518EC04: g_object_unref (in /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0.5000.2) ==27399== by 0x4E965B1: gda_data_proxy_set_filter_expr (gda-data-proxy.c:3218) ==27399== by 0x10AF1D: check_proxy_set_filter (check_data_proxy.c:1577) ==27399== by 0x10B9B8: do_test_common_read (check_data_proxy.c:811) ==27399== by 0x10A369: main (check_data_proxy.c:119) ==27399== Block was alloc'd at ==27399== at 0x4C2CBC5: calloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) ==27399== by 0x541CE60: g_malloc0 (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.5000.2) ==27399== by 0x4EF07D9: gda_pstmt_init (gda-pstmt.c:86) ==27399== by 0x51AD30E: g_type_create_instance (in /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0.5000.2) ==27399== by 0x518F1FA: ??? (in /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0.5000.2) ==27399== by 0x5190C0C: g_object_newv (in /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0.5000.2) ==27399== by 0x51913C3: g_object_new (in /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0.5000.2) ==27399== by 0x4F062B4: _gda_sqlite_pstmt_new (gda-sqlite-pstmt.c:108) ==27399== by 0x4F00055: real_prepare (gda-sqlite-provider.c:2601) ==27399== by 0x4F00415: gda_sqlite_provider_statement_prepare (gda-sqlite-provider.c:2401) ==27399== by 0x4F019A4: gda_sqlite_provider_statement_execute (gda-sqlite-provider.c:2976) ==27399== by 0x4F0CB3E: gda_vprovider_data_model_statement_execute (gda-vprovider-data-model.c:453) ==27399== by 0x4E7681F: gda_connection_statement_execute_v (gda-connection.c:3544) ==27399== by 0x4E7823F: gda_connection_statement_execute_select (gda-connection.c:3830) ==27399== by 0x4E90A66: apply_filter_statement (gda-data-proxy.c:3120) ==27399== by 0x4E965C8: gda_data_proxy_set_filter_expr (gda-data-proxy.c:3265) ==27399== by 0x10AF1D: check_proxy_set_filter (check_data_proxy.c:1577) ==27399== by 0x10B888: do_test_common_read (check_data_proxy.c:769) ==27399== by 0x10A369: main (check_data_proxy.c:119)
-- GitLab Migration Automatic Message -- This bug has been migrated to GNOME's GitLab instance and has been closed from further activity. You can subscribe and participate further through the new bug through this link to our GitLab instance: https://gitlab.gnome.org/GNOME/libgda/issues/127.