commit bf38a2eca54dc8360bce074887a2abd4f63eaeb9
Author: Stef Walter <stefw@gnome.org>
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 <muhammetk@gmail.com>
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 <vnwildman@gmail.com>
Date:   2014-11-21

    Updated Vietnamese translation
    
    Signed-off-by: Trần Ngọc Quân <vnwildman@gmail.com>

 po/vi.po | 1102 +++++++++-----------------------------------------------------
 1 file changed, 158 insertions(+), 944 deletions(-)

commit f59fb0646dedd4e730c9e8e3c090d7cd52ac5278
Author: Ting-Wei Lan <lantw@src.gnome.org>
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 <cfergeau@redhat.com>
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 <cfergeau@redhat.com>
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 <cfergeau@redhat.com>
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 <cfergeau@redhat.com>
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 <stefw@redhat.com>
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 <stefw@redhat.com>
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 <stefw@redhat.com>
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 <baurthefirst@gmail.com>
Date:   2014-10-28

    Added Kazakh translation

 po/LINGUAS |   1 +
 po/kk.po   | 572 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 573 insertions(+)

commit 082a2fe3278c37b9899c23ebac003791a8999ea5
Author: Stef Walter <stefw@redhat.com>
Date:   2014-10-25

    Ignore vim swp temporary files

 .gitignore | 1 +
 1 file changed, 1 insertion(+)

commit 39aeef6f368e4d8517f19b83c33d55b9cc87f44f
Author: Christophe Fergeau <cfergeau@redhat.com>
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 <cfergeau@redhat.com>
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 <cfergeau@redhat.com>
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 <cfergeau@redhat.com>
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 <cfergeau@redhat.com>
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 <cfergeau@redhat.com>
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 <cfergeau@redhat.com>
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 <cfergeau@redhat.com>
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 <cfergeau@redhat.com>
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 <cfergeau@redhat.com>
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 <cfergeau@redhat.com>
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 <cfergeau@redhat.com>
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 <cfergeau@redhat.com>
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 <cfergeau@redhat.com>
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 <cfergeau@redhat.com>
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 <cfergeau@redhat.com>
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 <cfergeau@redhat.com>
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 <cfergeau@redhat.com>
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 <cfergeau@redhat.com>
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 <cfergeau@redhat.com>
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 <cfergeau@redhat.com>
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 <cfergeau@redhat.com>
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 <cfergeau@redhat.com>
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 <cfergeau@redhat.com>
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 <cfergeau@redhat.com>
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 <cfergeau@redhat.com>
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 <cfergeau@redhat.com>
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 <cfergeau@redhat.com>
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 <cfergeau@redhat.com>
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 <cfergeau@redhat.com>
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 <cfergeau@redhat.com>
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 <cfergeau@redhat.com>
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 <cfergeau@redhat.com>
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 <cfergeau@redhat.com>
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 <cfergeau@redhat.com>
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 <cfergeau@redhat.com>
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 <cfergeau@redhat.com>
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 <cfergeau@redhat.com>
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 <cfergeau@redhat.com>
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 <cfergeau@redhat.com>
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 <cfergeau@redhat.com>
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(+)