summaryrefslogtreecommitdiff
path: root/libnm-util/crypto.c
diff options
context:
space:
mode:
authorDan Williams <dcbw@redhat.com>2013-03-07 18:25:42 -0600
committerDan Williams <dcbw@redhat.com>2013-03-08 09:27:51 -0600
commitfa97543186933221c51d574b85ab809b3c417931 (patch)
tree33121d7a07b444e195fa3e3c528adebffb72b0d7 /libnm-util/crypto.c
parentc22e4da986035e49ad88fe759bc65e3fc2cd132e (diff)
downloadNetworkManager-fa97543186933221c51d574b85ab809b3c417931.tar.gz
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)
Diffstat (limited to 'libnm-util/crypto.c')
-rw-r--r--libnm-util/crypto.c3
1 files changed, 3 insertions, 0 deletions
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)