From fa97543186933221c51d574b85ab809b3c417931 Mon Sep 17 00:00:00 2001 From: Dan Williams Date: Thu, 7 Mar 2013 18:25:42 -0600 Subject: [PATCH] libnm-util: free temporary decoded base64 data when parsing OpenSSL key files ==7347== 1,201 bytes in 1 blocks are definitely lost in loss record 5,016 of 5,107 ==7347== at 0x4A06B0F: calloc (vg_replace_malloc.c:593) ==7347== by 0x39B90548E6: g_malloc0 (gmem.c:189) ==7347== by 0x39B9026F8D: g_base64_decode (gbase64.c:407) ==7347== by 0x4C51CA1: parse_old_openssl_key_file (crypto.c:227) ==7347== by 0x4C51EC3: crypto_decrypt_private_key_data (crypto.c:497) ==7347== by 0x4C529BE: crypto_verify_private_key_data (crypto.c:706) ==7347== by 0x4C52B7B: crypto_verify_private_key (crypto.c:735) ==7347== by 0x4C5CCC5: nm_setting_802_1x_set_private_key (nm-setting-8021x.c:1633) ==7347== by 0xC8F64D4: eap_tls_reader (reader.c:2270) ==7347== by 0xC8F4886: fill_8021x (reader.c:2704) ==7347== by 0xC8F8311: wireless_connection_from_ifcfg (reader.c:2825) ==7347== by 0xC8FAFD2: connection_from_file (reader.c:4303) --- libnm-util/crypto.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/libnm-util/crypto.c b/libnm-util/crypto.c index e708146456..6097b13dfc 100644 --- a/libnm-util/crypto.c +++ b/libnm-util/crypto.c @@ -238,11 +238,14 @@ parse_old_openssl_key_file (const GByteArray *contents, bindata = g_byte_array_sized_new (tmp_len); g_byte_array_append (bindata, tmp, tmp_len); + g_free (tmp); + *out_iv = iv; *out_cipher = cipher; return bindata; parse_error: + g_free (tmp); g_free (cipher); g_free (iv); if (str)