commit bf38a2eca54dc8360bce074887a2abd4f63eaeb9 Author: Stef Walter Date: 2015-02-25 Release version 3.15.90 NEWS | 6 ++++++ configure.ac | 2 +- 2 files changed, 7 insertions(+), 1 deletion(-) commit a3a45e283275887947182177deb4185304593fbc Author: Muhammet Kara Date: 2014-12-06 Updated Turkish translation po/tr.po | 255 +++++++++++++++++++++++++++++++-------------------------------- 1 file changed, 127 insertions(+), 128 deletions(-) commit 3eb2019cfd558f3f6a4b1d3fe6c0f9dc60c6457f Author: Trần Ngọc Quân Date: 2014-11-21 Updated Vietnamese translation Signed-off-by: Trần Ngọc Quân po/vi.po | 1102 +++++++++----------------------------------------------------- 1 file changed, 158 insertions(+), 944 deletions(-) commit f59fb0646dedd4e730c9e8e3c090d7cd52ac5278 Author: Ting-Wei Lan Date: 2014-11-16 Fix "void function should not return a value" error for clang https://bugzilla.gnome.org/show_bug.cgi?id=740190 daemon/login/gkd-login.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 28f04eb2bcff369ab13f3c98c00b7bcbf91594d3 Author: Christophe Fergeau Date: 2014-09-15 asn1x: Sanitize use of asn1_set_value/asn1_take_value Most callers of asn1_set_value() seems to assume this function will take ownership of the passed in GBytes, while it actually takes an additional reference. https://bugzilla.gnome.org/show_bug.cgi?id=738508 egg/egg-asn1x.c | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) commit 6da13bb815c3893ab305316ca3f08faaf0093953 Author: Christophe Fergeau Date: 2014-10-15 daemon: Fix GStrv leak in DBus message handler https://bugzilla.gnome.org/show_bug.cgi?id=738508 daemon/dbus/gkd-dbus.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) commit b087539a6cdd624fc4e0d6ae7de2811ab96864e6 Author: Christophe Fergeau Date: 2014-09-21 Don't leak password data in gkm_wrap_prompt_do_credential Memory returned by auto_unlock_lookup_object() must be freed while memory returned by gkm_wrap_prompt_request_password() must not be freed. Depending on the situation, CredentialPrompt::password will contain one or the other, and currently this field is never freed, causing leaks when the password comes from auto_unlock_lookup_object(). This commit will always free CredentialPrompt::password when it's no longer needed, and will create a copy of the returned string when gkm_wrap_prompt_request_password() is called. This fixes (line numbers from 3.13.91-2-g45bb5be): ==2190== 8 bytes in 1 blocks are definitely lost in loss record 58 of 1,294 ==2190== at 0x4A0645D: malloc (in /usr/lib64/valgrind/vgpreload_memcheck-amd64-linux.so) ==2190== by 0x5DE6DE6: g_malloc (gmem.c:97) ==2190== by 0x5E024B5: g_memdup (gstrfuncs.c:384) ==2190== by 0x41296C: gkm_template_set (gkm-attributes.c:600) ==2190== by 0x4129F0: gkm_template_set_value (gkm-attributes.c:614) ==2190== by 0x419BCD: mock_secret_C_CreateObject (mock-secret-store.c:174) ==2190== by 0x40646E: wrap_C_CreateObject (gkm-wrap-layer.c:741) ==2190== by 0x418985: find_login_keyring_item (gkm-wrap-login.c:254) ==2190== by 0x4190AF: gkm_wrap_login_lookup_secret (gkm-wrap-login.c:396) ==2190== by 0x407E8D: auto_unlock_lookup_object (gkm-wrap-prompt.c:198) ==2190== by 0x40B9B0: login_prompt_do_specific (gkm-wrap-prompt.c:1453) ==2190== by 0x40C13A: gkm_wrap_prompt_do_login (gkm-wrap-prompt.c:1591) ==2190== by 0x406384: auth_C_Login (gkm-wrap-layer.c:706) ==2190== by 0x40472A: test_specific (test-login-auto.c:156) ==2190== by 0x5E0A27A: test_case_run (gtestutils.c:2059) ==2190== by 0x5E0A602: g_test_run_suite_internal (gtestutils.c:2120) ==2190== by 0x5E0A6C4: g_test_run_suite_internal (gtestutils.c:2131) ==2190== by 0x5E0A6C4: g_test_run_suite_internal (gtestutils.c:2131) ==2190== by 0x5E0A847: g_test_run_suite (gtestutils.c:2184) ==2190== by 0x5E09551: g_test_run (gtestutils.c:1488) ==2190== by 0x410851: testing_thread (egg-testing.c:142) ==2190== by 0x5E0D2F4: g_thread_proxy (gthread.c:764) ==2190== by 0x3B7AE07F34: start_thread (pthread_create.c:309) ==2190== by 0x3B7AAF4C3C: clone (clone.S:111) https://bugzilla.gnome.org/show_bug.cgi?id=738508 pkcs11/wrap-layer/gkm-wrap-prompt.c | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) commit dc5a7dc4e5690e258a90d8ddfc39e17c1f8d4938 Author: Christophe Fergeau Date: 2014-09-21 Don't leak password in login_prompt_do_{specific, user) login_prompt_do_specific() and login_prompt_do_user() both set GkmWrapPrompt::prompt_data to either memory which must be freed with egg_secure_memory_strfree (through a call to auto_unlock_lookup_*) or to const memory which must not be freed (through a call to gkm_wrap_prompt_request_password). These methods currently assume the password memory does not need to be freed, which leads to this leak in test-login-auto (line numbers from 3.13.91-2-g45bb5be): ==2190== 5 bytes in 1 blocks are definitely lost in loss record 17 of 1,294 ==2190== at 0x40F8E4: egg_secure_alloc_full (egg-secure-memory.c:1056) ==2190== by 0x417F5E: egg_secure_alloc (gkm-wrap-login.c:42) ==2190== by 0x419157: gkm_wrap_login_lookup_secret (gkm-wrap-login.c:409) ==2190== by 0x407E8D: auto_unlock_lookup_object (gkm-wrap-prompt.c:198) ==2190== by 0x40B9B0: login_prompt_do_specific (gkm-wrap-prompt.c:1453) ==2190== by 0x40C13A: gkm_wrap_prompt_do_login (gkm-wrap-prompt.c:1591) ==2190== by 0x406384: auth_C_Login (gkm-wrap-layer.c:706) ==2190== by 0x40472A: test_specific (test-login-auto.c:156) ==2190== by 0x5E0A27A: test_case_run (gtestutils.c:2059) ==2190== by 0x5E0A602: g_test_run_suite_internal (gtestutils.c:2120) ==2190== by 0x5E0A6C4: g_test_run_suite_internal (gtestutils.c:2131) ==2190== by 0x5E0A6C4: g_test_run_suite_internal (gtestutils.c:2131) ==2190== by 0x5E0A847: g_test_run_suite (gtestutils.c:2184) ==2190== by 0x5E09551: g_test_run (gtestutils.c:1488) ==2190== by 0x410851: testing_thread (egg-testing.c:142) ==2190== by 0x5E0D2F4: g_thread_proxy (gthread.c:764) ==2190== by 0x3B7AE07F34: start_thread (pthread_create.c:309) ==2190== by 0x3B7AAF4C3C: clone (clone.S:111) https://bugzilla.gnome.org/show_bug.cgi?id=738508 pkcs11/wrap-layer/gkm-wrap-prompt.c | 62 ++++++++++++++++++++++++++----------- 1 file changed, 44 insertions(+), 18 deletions(-) commit abf3473a9a14784a76911ef35c0916d462d55402 Author: Stef Walter Date: 2014-10-26 gpg-agent: Use common code for storing/retrieving passwords daemon/gpg-agent/gkd-gpg-agent-ops.c | 269 +++-------------------------------- 1 file changed, 21 insertions(+), 248 deletions(-) commit 354f9887eef1c2c6144b904739ca0230bc2f2a4e Author: Stef Walter Date: 2014-10-26 login: Factor out the code for storing/retrieving login keyring passwords This was in the gpg-agent, and want to use it in our ssh-agent wrapper daemon/login/Makefile.am | 1 + daemon/login/gkd-login.c | 300 +++++++++++++++++++++++++++++++++++++++++++++++ daemon/login/gkd-login.h | 20 ++++ 3 files changed, 321 insertions(+) commit d9df0a179fbfae82f8cec20cf46e8b9f03c044ba Author: Stef Walter Date: 2014-10-26 gpg-agent: No longer build the testing standalone agent This just caused more unneccessary code that we'd never use. daemon/gpg-agent/Makefile.am | 15 --------------- 1 file changed, 15 deletions(-) commit ea36fd9182c143348851be2053bce9b6da052bc8 Author: Baurzhan Muftakhidinov Date: 2014-10-28 Added Kazakh translation po/LINGUAS | 1 + po/kk.po | 572 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 573 insertions(+) commit 082a2fe3278c37b9899c23ebac003791a8999ea5 Author: Stef Walter Date: 2014-10-25 Ignore vim swp temporary files .gitignore | 1 + 1 file changed, 1 insertion(+) commit 39aeef6f368e4d8517f19b83c33d55b9cc87f44f Author: Christophe Fergeau Date: 2014-10-14 GkdGpgAgent: Unref GIOChannel when no longer needed This fixes a memory leak reported by valgrind on daemon shutdown (tested by starting a new daemon instance with --replace). https://bugzilla.gnome.org/show_bug.cgi?id=738508 daemon/gpg-agent/gkd-gpg-agent.c | 1 + 1 file changed, 1 insertion(+) commit 3db6f3bbbd13d6eec29cf96f103975f793b24e4e Author: Christophe Fergeau Date: 2014-10-14 Free GkdSecretService::alias_directory in finalize() This fixes a memory leak reported by valgrind on daemon shutdown (tested by starting a new daemon instance with --replace). https://bugzilla.gnome.org/show_bug.cgi?id=738508 daemon/dbus/gkd-secret-service.c | 3 +++ 1 file changed, 3 insertions(+) commit ddcdccbf98ba71547c6494db07b3ece505ec769b Author: Christophe Fergeau Date: 2014-10-13 GkmMock: Fix handling of CKA_G_CREDENTIAL_TEMPLATE attributes These are special as their value is an array of CK_ATTRIBUTE pointing to allocated memory. Moreover, when gkm_mock_C_SetAttributeValue() is called, this memory is owned by the caller, so it needs to be duplicated as the caller may free it before GkmMock no longer needs it. We also need to make sure this memory we just duplicated is correctly freed when no longer needed. This is achieved by introducing an additional global variable, the_credential_template. This is similar to how this type of attributes is handled in GkmSecretCollection. Without this, running test-login-auto in valgrind causes invalid reads: ==5954== Invalid read of size 1 ==5954== at 0x4123D4: gkm_attributes_find_boolean (gkm-attributes.c:503) ==5954== by 0x408C00: set_unlock_options_on_prompt (gkm-wrap-prompt.c:520) ==5954== by 0x40A3E8: gkm_wrap_prompt_do_credential (gkm-wrap-prompt.c:1055) ==5954== by 0x40641C: auth_C_CreateObject (gkm-wrap-layer.c:764) ==5954== by 0x404D7B: test_unlock_keyring (test-login-auto.c:243) ==5954== by 0x5E04A8B: test_case_run (gtestutils.c:2059) ==5954== by 0x5E04E2D: g_test_run_suite_internal (gtestutils.c:2120) ==5954== by 0x5E04EEF: g_test_run_suite_internal (gtestutils.c:2131) ==5954== by 0x5E04EEF: g_test_run_suite_internal (gtestutils.c:2131) ==5954== by 0x5E0506F: g_test_run_suite (gtestutils.c:2184) ==5954== by 0x5E03D5C: g_test_run (gtestutils.c:1488) ==5954== by 0x410725: testing_thread (egg-testing.c:142) ==5954== by 0x5E07B29: g_thread_proxy (gthread.c:764) ==5954== by 0x3899207529: start_thread (pthread_create.c:310) ==5954== by 0x3898F0077C: clone (clone.S:109) ==5954== Address 0x85bad90 is 0 bytes inside a block of size 1 free'd ==5954== at 0x4A07CE9: free (in /usr/lib64/valgrind/vgpreload_memcheck-amd64-linux.so) ==5954== by 0x5DE1A0D: g_free (gmem.c:190) ==5954== by 0x409E54: gkm_wrap_prompt_finalize (gkm-wrap-prompt.c:933) ==5954== by 0x590293A: g_object_unref (gobject.c:3170) ==5954== by 0x40644A: auth_C_CreateObject (gkm-wrap-layer.c:771) ==5954== by 0x404CD5: test_unlock_keyring (test-login-auto.c:234) ==5954== by 0x5E04A8B: test_case_run (gtestutils.c:2059) ==5954== by 0x5E04E2D: g_test_run_suite_internal (gtestutils.c:2120) ==5954== by 0x5E04EEF: g_test_run_suite_internal (gtestutils.c:2131) ==5954== by 0x5E04EEF: g_test_run_suite_internal (gtestutils.c:2131) ==5954== by 0x5E0506F: g_test_run_suite (gtestutils.c:2184) ==5954== by 0x5E03D5C: g_test_run (gtestutils.c:1488) ==5954== by 0x410725: testing_thread (egg-testing.c:142) ==5954== by 0x5E07B29: g_thread_proxy (gthread.c:764) ==5954== by 0x3899207529: start_thread (pthread_create.c:310) ==5954== by 0x3898F0077C: clone (clone.S:109) https://bugzilla.gnome.org/show_bug.cgi?id=738508 pkcs11/gkm/gkm-mock.c | 27 +++++++++++++++++++++++++-- 1 file changed, 25 insertions(+), 2 deletions(-) commit 87f82c227694279d7e6ad26ca90112835a69c7c5 Author: Christophe Fergeau Date: 2014-10-01 test-spawn: Fix leaks of EchoData content EchoData::error and EchoData::output must be freed after use. https://bugzilla.gnome.org/show_bug.cgi?id=738508 egg/test-spawn.c | 6 ++++++ 1 file changed, 6 insertions(+) commit 0db2253d64b5607bf20e4e17060de81450e91797 Author: Christophe Fergeau Date: 2014-09-22 xdg: Fix ref leak in remove_assertion_from_trust() When a transaction is used, remove_assertion_from_trust() will steal the assertion and its key from the 'assertions' hash table. The stolen assertion will then be added to the transaction and be unreferenced later, but the key must be unref'ed as the hash table owned a reference on it. This fixes: ==9337== 104 (40 direct, 64 indirect) bytes in 1 blocks are definitely lost in loss record 614 of 678 ==9337== at 0x4A0645D: malloc (in /usr/lib64/valgrind/vgpreload_memcheck-amd64-linux.so) ==9337== by 0x4EEADE6: g_malloc (gmem.c:97) ==9337== by 0x4F03A22: g_slice_alloc (gslice.c:1007) ==9337== by 0x4EB6954: g_bytes_new_with_free_func (gbytes.c:183) ==9337== by 0x4EB68D5: g_bytes_new_take (gbytes.c:126) ==9337== by 0x4116D4: create_assertion_key (gkm-xdg-trust.c:355) ==9337== by 0x411755: lookup_or_create_assertion_key (gkm-xdg-trust.c:371) ==9337== by 0x41312C: gkm_xdg_trust_replace_assertion (gkm-xdg-trust.c:874) ==9337== by 0x413B62: factory_create_assertion (gkm-xdg-assertion.c:181) ==9337== by 0x4338A3: gkm_session_create_object_for_factory (gkm-session.c:778) ==9337== by 0x433A5B: gkm_session_create_object_for_attributes (gkm-session.c:820) ==9337== by 0x434222: gkm_session_C_CreateObject (gkm-session.c:954) ==9337== by 0x40A1D0: test_create_assertion_twice (test-xdg-trust.c:497) ==9337== by 0x4F0E27A: test_case_run (gtestutils.c:2059) ==9337== by 0x4F0E602: g_test_run_suite_internal (gtestutils.c:2120) ==9337== by 0x4F0E6C4: g_test_run_suite_internal (gtestutils.c:2131) ==9337== by 0x4F0E6C4: g_test_run_suite_internal (gtestutils.c:2131) ==9337== by 0x4F0E847: g_test_run_suite (gtestutils.c:2184) ==9337== by 0x4F0D551: g_test_run (gtestutils.c:1488) ==9337== by 0x4516AD: testing_thread (egg-testing.c:142) ==9337== by 0x4F112F4: g_thread_proxy (gthread.c:764) ==9337== by 0x3B7AE07F34: start_thread (pthread_create.c:309) ==9337== by 0x3B7AAF4C3C: clone (clone.S:111) https://bugzilla.gnome.org/show_bug.cgi?id=738508 pkcs11/xdg-store/gkm-xdg-trust.c | 1 + 1 file changed, 1 insertion(+) commit 37c493c086f1721d6dea77bac462e60dc23096df Author: Christophe Fergeau Date: 2014-09-22 xdg: Remove wrong unref in gkm_xdg_trust_replace_assertion Callers of lookup_or_create_assertion_key() don't own a reference on the returned GBytes so it should not be unref'fed before exiting gkm_xdg_trust_replace_assertion. This solves the following errors from valgrind when running test-xdg-trust ==15477== ==15477== Thread 2 testing: ==15477== Invalid read of size 4 ==15477== at 0x4EB6B75: g_bytes_unref (gbytes.c:306) ==15477== by 0x4EC2692: g_datalist_clear (gdataset.c:273) ==15477== by 0x4C284A3: g_object_finalize (gobject.c:1033) ==15477== by 0x42B35E: gkm_object_finalize (gkm-object.c:448) ==15477== by 0x414134: gkm_assertion_finalize (gkm-assertion.c:134) ==15477== by 0x4C2D256: g_object_unref (gobject.c:3170) ==15477== by 0x43B9C7: gkm_util_dispose_unref (gkm-util.c:137) ==15477== by 0x4ECEBD1: g_hash_table_remove_all_nodes (ghash.c:503) ==15477== by 0x4ECFC02: g_hash_table_remove_all (ghash.c:1371) ==15477== by 0x431DBB: gkm_session_dispose (gkm-session.c:409) ==15477== by 0x4C2D131: g_object_unref (gobject.c:3133) ==15477== by 0x425391: apartment_free (gkm-module.c:241) ==15477== by 0x4ECEBD1: g_hash_table_remove_all_nodes (ghash.c:503) ==15477== by 0x4ECFC02: g_hash_table_remove_all (ghash.c:1371) ==15477== by 0x4267F9: gkm_module_dispose (gkm-module.c:633) ==15477== by 0x4107D3: gkm_xdg_module_dispose (gkm-xdg-module.c:553) ==15477== by 0x4C28648: g_object_run_dispose (gobject.c:1076) ==15477== by 0x40CCDD: gkm_C_Finalize (gkm-module-ep.h:102) ==15477== by 0x40C7F0: mock_xdg_module_leave_and_finalize (mock-xdg-module.c:151) ==15477== by 0x408585: teardown (test-xdg-trust.c:138) ==15477== by 0x4F0E2FE: test_case_run (gtestutils.c:2069) ==15477== by 0x4F0E602: g_test_run_suite_internal (gtestutils.c:2120) ==15477== by 0x4F0E6C4: g_test_run_suite_internal (gtestutils.c:2131) ==15477== by 0x4F0E6C4: g_test_run_suite_internal (gtestutils.c:2131) ==15477== by 0x4F0E847: g_test_run_suite (gtestutils.c:2184) ==15477== by 0x4F0D551: g_test_run (gtestutils.c:1488) ==15477== by 0x4516B9: testing_thread (egg-testing.c:142) ==15477== by 0x4F112F4: g_thread_proxy (gthread.c:764) ==15477== by 0x3B7AE07F34: start_thread (pthread_create.c:309) ==15477== by 0x3B7AAF4C3C: clone (clone.S:111) ==15477== Address 0x52b6100 is 16 bytes inside a block of size 40 free'd ==15477== at 0x4A07577: free (in /usr/lib64/valgrind/vgpreload_memcheck-amd64-linux.so) ==15477== by 0x4EEAF5F: g_free (gmem.c:190) ==15477== by 0x4F03C59: g_slice_free1 (gslice.c:1112) ==15477== by 0x4EB6BB8: g_bytes_unref (gbytes.c:310) ==15477== by 0x4ECEBB3: g_hash_table_remove_all_nodes (ghash.c:500) ==15477== by 0x4ECFC02: g_hash_table_remove_all (ghash.c:1371) ==15477== by 0x4ECF7C4: g_hash_table_destroy (ghash.c:1067) ==15477== by 0x4127E9: gkm_xdg_trust_finalize (gkm-xdg-trust.c:706) ==15477== by 0x4C2D256: g_object_unref (gobject.c:3170) ==15477== by 0x43B9C7: gkm_util_dispose_unref (gkm-util.c:137) ==15477== by 0x4ECEBD1: g_hash_table_remove_all_nodes (ghash.c:503) ==15477== by 0x4ECFC02: g_hash_table_remove_all (ghash.c:1371) ==15477== by 0x431DBB: gkm_session_dispose (gkm-session.c:409) ==15477== by 0x4C2D131: g_object_unref (gobject.c:3133) ==15477== by 0x425391: apartment_free (gkm-module.c:241) ==15477== by 0x4ECEBD1: g_hash_table_remove_all_nodes (ghash.c:503) ==15477== by 0x4ECFC02: g_hash_table_remove_all (ghash.c:1371) ==15477== by 0x4267F9: gkm_module_dispose (gkm-module.c:633) ==15477== by 0x4107D3: gkm_xdg_module_dispose (gkm-xdg-module.c:553) ==15477== by 0x4C28648: g_object_run_dispose (gobject.c:1076) ==15477== by 0x40CCDD: gkm_C_Finalize (gkm-module-ep.h:102) ==15477== by 0x40C7F0: mock_xdg_module_leave_and_finalize (mock-xdg-module.c:151) ==15477== by 0x408585: teardown (test-xdg-trust.c:138) ==15477== by 0x4F0E2FE: test_case_run (gtestutils.c:2069) ==15477== by 0x4F0E602: g_test_run_suite_internal (gtestutils.c:2120) ==15477== by 0x4F0E6C4: g_test_run_suite_internal (gtestutils.c:2131) ==15477== by 0x4F0E6C4: g_test_run_suite_internal (gtestutils.c:2131) ==15477== by 0x4F0E847: g_test_run_suite (gtestutils.c:2184) ==15477== by 0x4F0D551: g_test_run (gtestutils.c:1488) ==15477== by 0x4516B9: testing_thread (egg-testing.c:142) ==15477== by 0x4F112F4: g_thread_proxy (gthread.c:764) ==15477== by 0x3B7AE07F34: start_thread (pthread_create.c:309) ==15477== by 0x3B7AAF4C3C: clone (clone.S:111) https://bugzilla.gnome.org/show_bug.cgi?id=738508 pkcs11/xdg-store/gkm-xdg-trust.c | 1 - 1 file changed, 1 deletion(-) commit f2e759970c1a3a42378528a15166221715493288 Author: Christophe Fergeau Date: 2014-09-21 test-xdg-trust: Fix GChecksum leaks 'md' is created using g_checksum_new() so it must be destroyed with g_checksum_free() after use. https://bugzilla.gnome.org/show_bug.cgi?id=738508 pkcs11/gkm/gkm-attributes.c | 1 + pkcs11/xdg-store/test-xdg-trust.c | 1 + 2 files changed, 2 insertions(+) commit a88f4fcf255495ee575b4b7b94574c3ca0b66ca1 Author: Christophe Fergeau Date: 2014-09-21 Unref GkmXdgTrust::bytes in finalize() This will cause leaks otherwise, for example in test-xdg-module. https://bugzilla.gnome.org/show_bug.cgi?id=738508 pkcs11/xdg-store/gkm-xdg-trust.c | 4 ++++ 1 file changed, 4 insertions(+) commit 621a86e8b1b14a387cf1dd895005007570c3d2c3 Author: Christophe Fergeau Date: 2014-09-21 test-xdg-module: Fix memory leak Memory from g_file_get_contents() was never freed. https://bugzilla.gnome.org/show_bug.cgi?id=738508 pkcs11/xdg-store/test-xdg-module.c | 1 + 1 file changed, 1 insertion(+) commit bbb96835cc4120d6c9f0d7bf272f6eb386a07468 Author: Christophe Fergeau Date: 2014-09-21 xdg: Don't leak ref in lookup_or_create_assertion_key() When lookup_or_create_assertion_key() creates a new assertion key, it own a reference on the GBytes created by create_assertion_key() and it will then take an extra ref on it when associating it with a GkmAssertion instance. This will cause a leak of the memory returned by create_assertion_key() as one of these references will never be dropped. https://bugzilla.gnome.org/show_bug.cgi?id=738508 pkcs11/xdg-store/gkm-xdg-trust.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit bc17247fdd1fa843560ecebb4f20a10460df0d63 Author: Christophe Fergeau Date: 2014-09-21 Fix leak in gkm_mock_C_SetPIN() https://bugzilla.gnome.org/show_bug.cgi?id=738508 pkcs11/gkm/gkm-mock.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) commit 670fe30c2dfe7accc738c8def6c1ccf047c944b6 Author: Christophe Fergeau Date: 2014-10-01 gkm-xdg-assertion: Fix leak in factory_create_assertion() 'purpose' and 'peer' were allocated through gkm_attributes_find_string() and must thus be freed after use. https://bugzilla.gnome.org/show_bug.cgi?id=738508 pkcs11/xdg-store/gkm-xdg-assertion.c | 2 ++ 1 file changed, 2 insertions(+) commit ca2b73954d497ea36b94b547649a08dd85ec38e1 Author: Christophe Fergeau Date: 2014-10-01 Fix leak in mock_secret_C_CreateObject 'template' is created with gkm_template_new() so it must be freed using gkm_template_free(). https://bugzilla.gnome.org/show_bug.cgi?id=738508 pkcs11/wrap-layer/mock-secret-store.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 165f0e3210e32538c847be91896736c17a1f6ad6 Author: Christophe Fergeau Date: 2014-10-01 gkm-secret-textual: Fix leak in generate_attribute() The GList returned by gkm_secret_fields_get_names() must be freed with g_list_free after use as this is created using g_hash_table_get_keys(). https://bugzilla.gnome.org/show_bug.cgi?id=738508 pkcs11/secret-store/gkm-secret-textual.c | 1 + 1 file changed, 1 insertion(+) commit 750047bc77edc730e76fc536ce17151b52ae22da Author: Christophe Fergeau Date: 2014-10-01 gkm-secret-search: Fix leak in factory_create_search() gkm_attribute_get_string() returns a newly allocated string which must be freed when no longer useful. https://bugzilla.gnome.org/show_bug.cgi?id=738508 pkcs11/secret-store/gkm-secret-search.c | 1 + 1 file changed, 1 insertion(+) commit a1984261cb2aabf20d2014a987e2adfbfbae7fc1 Author: Christophe Fergeau Date: 2014-10-01 gkm-gnome2-storage: Unref GkmGnome2Storage::login in dispose() https://bugzilla.gnome.org/show_bug.cgi?id=738508 pkcs11/gnome2-store/gkm-gnome2-storage.c | 4 ++++ 1 file changed, 4 insertions(+) commit bf96feaff541668ead5438ee074c4318165a3962 Author: Christophe Fergeau Date: 2014-10-01 secret-store/test*: Don't leak secret data memory Both test-secret-binary and test-secret-textual call g_file_get_contents() but never free the returned data, causing a memory leak. https://bugzilla.gnome.org/show_bug.cgi?id=738508 pkcs11/secret-store/test-secret-binary.c | 1 + pkcs11/secret-store/test-secret-textual.c | 1 + 2 files changed, 2 insertions(+) commit 9421bf589095380286bed90bca67f6ae2746ce0b Author: Christophe Fergeau Date: 2014-10-01 test-import: Don't leak args.pReserved It's allocated with g_strdup_printf and must thus be freed after use. https://bugzilla.gnome.org/show_bug.cgi?id=738508 pkcs11/gnome2-store/test-import.c | 1 + 1 file changed, 1 insertion(+) commit c2870de15ba639b6a02916a89be07274c2b5895b Author: Christophe Fergeau Date: 2014-10-01 egg-hkdf: Fix gcry_md_ht_t leak in egg_hkdf_perform The 'md2' gcry_md_ht_t variable is opened with gcry_md_open() in that method but is never closed, which causes a leak. https://bugzilla.gnome.org/show_bug.cgi?id=738508 egg/egg-hkdf.c | 1 + 1 file changed, 1 insertion(+) commit 1581f4a33e350de62cf98bec0530934dcf2a0272 Author: Christophe Fergeau Date: 2014-10-01 egg-asn1x: Fix memory leak in egg_asn1x_set_any_raw() In error cases, the Atlv variable 'tlv' which was created in this function is not going to be used, so we must free it before returning. https://bugzilla.gnome.org/show_bug.cgi?id=738508 egg/egg-asn1x.c | 1 + 1 file changed, 1 insertion(+) commit 17b429de6d2d911fcfac3fbc042aa5579a3a4535 Author: Christophe Fergeau Date: 2014-10-01 test-sexp: Fix 2 leaks gcry_sexp_t objects created with gkm_sexp_parse_key() must be freed with gcry_sexp_release(), and gcry_mpi_t objects created with gkm_sexp_extract_mpi() must be freed with gcry_mpi_release() when no longer used. https://bugzilla.gnome.org/show_bug.cgi?id=738508 pkcs11/gkm/test-sexp.c | 2 ++ 1 file changed, 2 insertions(+) commit 33793e57c557830cda36af68376f5dfd2130c073 Author: Christophe Fergeau Date: 2014-10-01 test-secret: Don't leak new secrets in test_equal() Secrets created with gkm_secret_new* must be unref'fed when no longer used. https://bugzilla.gnome.org/show_bug.cgi?id=738508 pkcs11/gkm/test-secret.c | 3 +++ 1 file changed, 3 insertions(+) commit 75c1fb8b8e3eb0df794bd80ed883fdc16a865664 Author: Christophe Fergeau Date: 2014-10-01 test-pam: Fix GError leak in error case When g_file_get_contents() fails and sets an error, it must be freed. https://bugzilla.gnome.org/show_bug.cgi?id=738508 pam/test-pam.c | 1 + 1 file changed, 1 insertion(+) commit dbc6af0ea986a4840e6a8a06d632435332c6d2a4 Author: Christophe Fergeau Date: 2014-10-01 test-padding: Don't leak egg_padding_pkcs1_pad_02 return value egg_padding_pkcs1_pad_02 returns newly allocated data which must be g_free'ed after use. https://bugzilla.gnome.org/show_bug.cgi?id=738508 egg/test-padding.c | 1 + 1 file changed, 1 insertion(+) commit 610a177931675a08a13681d6741a1d18baaa92ee Author: Christophe Fergeau Date: 2014-10-01 test-asn1: Don't leak 'asn' in test_create_quark() https://bugzilla.gnome.org/show_bug.cgi?id=738508 egg/test-asn1.c | 1 + 1 file changed, 1 insertion(+) commit 1e18f347a1a3444b3fc7126af087d0c90a791e57 Author: Christophe Fergeau Date: 2014-10-01 test-startup: Use g_strfreev to free GStrv variable gkd_test_launch_daemon returns a "transfer full" GStrv, so it must be freed with g_strfreev after use. https://bugzilla.gnome.org/show_bug.cgi?id=738508 daemon/test-startup.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 6c2d07a4faea639ed2b2bcf1815fdb5cbfa4945e Author: Christophe Fergeau Date: 2014-09-17 gkm-gnome2-file: Free keys to 'entries' hash tables The keys to the 'publics' and 'privates' hash tables are strdup'ed strings, but these strings are never freed. This commit adds a free function for hash table keys to the g_hash_table_new_full call. https://bugzilla.gnome.org/show_bug.cgi?id=738508 pkcs11/gnome2-store/gkm-gnome2-file.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 0fc832aa65e2d125459c9fb43c4d3ba4697270d6 Author: Christophe Fergeau Date: 2014-09-17 test-data-der: Fix various memory leaks https://bugzilla.gnome.org/show_bug.cgi?id=738508 pkcs11/gkm/test-data-der.c | 13 +++++++++++++ 1 file changed, 13 insertions(+) commit 298d910cfe2e468ad0005646e8a00b5fc8116e10 Author: Christophe Fergeau Date: 2014-09-17 test-data-asn1: Fix memory leaks in test_asn1_integers https://bugzilla.gnome.org/show_bug.cgi?id=738508 pkcs11/gkm/test-data-asn1.c | 3 +++ 1 file changed, 3 insertions(+) commit c5083ba0216b15e8f9ed842b7097e7fa6c60c25b Author: Christophe Fergeau Date: 2014-09-17 gkm-data-asn1: Unref buffer we got from egg_asn1x_get_integer_as_raw() Otherwise we will be leaking a reference to that buffer, and it will never get destroyed. This showed up as a memory leaked in test-data-der. https://bugzilla.gnome.org/show_bug.cgi?id=738508 pkcs11/gkm/gkm-data-asn1.c | 1 + 1 file changed, 1 insertion(+) commit 326a94543c5cc6c44d3fd9e1b7fd6eb11a2ea998 Author: Christophe Fergeau Date: 2014-09-17 egg/test-dn: Don't leak GBytes created in test_dn_value() https://bugzilla.gnome.org/show_bug.cgi?id=738508 egg/test-dn.c | 1 + 1 file changed, 1 insertion(+) commit 8ea8329cc09e263d9628e791e0f5a464bde63413 Author: Christophe Fergeau Date: 2014-09-17 egg-cleanup: Don't leak 'cleanup' on unregister When unregistering a cleanup instance, the memory allocated for the cleanup was not freed causing a memory leak. https://bugzilla.gnome.org/show_bug.cgi?id=738508 egg/egg-cleanup.c | 1 + 1 file changed, 1 insertion(+) commit 9af2db3f41e713c02e36dc71f0d6295db7d9e408 Author: Christophe Fergeau Date: 2014-09-17 test-dbus-items: Fix memory leak https://bugzilla.gnome.org/show_bug.cgi?id=738508 daemon/dbus/test-dbus-items.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) commit 0c9c4a549e770e89e51d5f39995fdfc8c1af71ec Author: Christophe Fergeau Date: 2014-09-15 Free GkmSecretItem::schema in ::finalize() https://bugzilla.gnome.org/show_bug.cgi?id=738508 pkcs11/secret-store/gkm-secret-item.c | 3 +++ 1 file changed, 3 insertions(+) commit 04129e8d2c1cb8a0f5d6944d4bb7fa45f7171a2a Author: Christophe Fergeau Date: 2014-09-15 gkm-gnome2-file: Fix leaks in create_cipher() 'key' and 'iv' were allocated before calling egg_symkey_generate_simple() but this function allocates the memory needed for the 'key' and 'iv' return value, so the memory which was allocated in create_cipher() is lost and leaked. This also uses egg_secure_memory_free() to free 'key' memory as egg_symkey_generate_simple() allocates it with egg_secure_alloc(). https://bugzilla.gnome.org/show_bug.cgi?id=738508 pkcs11/gnome2-store/gkm-gnome2-file.c | 11 ++--------- 1 file changed, 2 insertions(+), 9 deletions(-) commit 5a98866f4b7c89451c95e8d559e8f2021c5e1456 Author: Christophe Fergeau Date: 2014-09-15 gkm-gnome2-file: Fix leak in validate_buffer() 'check' is allocated in this function but never freed. https://bugzilla.gnome.org/show_bug.cgi?id=738508 pkcs11/gnome2-store/gkm-gnome2-file.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) commit 24ff22e04c86885aa4f7f877d612c94e2e2d8f6d Author: Christophe Fergeau Date: 2014-09-15 Unref GkmCredential::secret in ::dispose This fixes a memory leak. https://bugzilla.gnome.org/show_bug.cgi?id=738508 pkcs11/gkm/gkm-credential.c | 4 ++++ 1 file changed, 4 insertions(+) commit 9bfe73731316389a9975fd440992afa914070467 Author: Christophe Fergeau Date: 2014-10-14 ssh-agent: Fix leak in op_request_identities The object returned by gck_enumerator_next() must be unref'ed. https://bugzilla.gnome.org/show_bug.cgi?id=738508 daemon/ssh-agent/gkd-ssh-agent-ops.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) commit f81fa15dcbbc3a7ce3e8be9a229e13a0678a606b Author: Christophe Fergeau Date: 2014-10-01 ssh-agent: Fix leak in op_v1_request_identities The object returned by gck_enumerator_next() must be unref'ed as this method is "transfer full". https://bugzilla.gnome.org/show_bug.cgi?id=738508 daemon/ssh-agent/gkd-ssh-agent-ops.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) commit d177a8b5353f3156ab504f39c20753d6786e5e4d Author: Christophe Fergeau Date: 2014-09-15 ssh-agent: Fix leak in search_keys_like_attributes() gck_enumerator_next() return value must be unref'fed as it's transfer full. https://bugzilla.gnome.org/show_bug.cgi?id=738508 daemon/ssh-agent/gkd-ssh-agent-ops.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) commit 04b9de9fd806598bb49e6b9d49d2697156f6f39d Author: Christophe Fergeau Date: 2014-10-01 ssh-agent: Fix leak in remove_by_public_key() gck_attributes_find_string() returns a newly allocated string, so it must be g_free'ed after use. https://bugzilla.gnome.org/show_bug.cgi?id=738508 daemon/ssh-agent/gkd-ssh-agent-ops.c | 1 + 1 file changed, 1 insertion(+)