From c22e4da986035e49ad88fe759bc65e3fc2cd132e Mon Sep 17 00:00:00 2001 From: Dan Williams Date: Thu, 7 Mar 2013 18:06:38 -0600 Subject: [PATCH] libnm-util: free PPPoE setting private data members ==23089== 342 bytes in 38 blocks are definitely lost in loss record 4,870 of 5,123 ==23089== at 0x4A0881C: malloc (vg_replace_malloc.c:270) ==23089== by 0x39B905488E: g_malloc (gmem.c:159) ==23089== by 0x39B906A4BB: g_strdup (gstrfuncs.c:356) ==23089== by 0x31FC02DA90: set_property (nm-setting-pppoe.c:220) ==23089== by 0x39B9819972: g_object_set_property (gobject.c:1352) ==23089== by 0x31FC01A9A7: nm_setting_enumerate_values (nm-setting.c:589) ==23089== by 0x31FC01AA81: nm_setting_duplicate (nm-setting.c:264) ==23089== by 0x31FC01633B: duplicate_cb (nm-connection.c:1182) ==23089== by 0x39B903F8DF: g_hash_table_foreach (ghash.c:1524) ==23089== by 0x31FC01756C: nm_connection_duplicate (nm-connection.c:1203) ==23089== by 0x4A7BE3: get_settings_auth_cb (nm-settings-connection.c:1062) ==23089== by 0x4A5624: auth_start (nm-settings-connection.c:1008) --- libnm-util/nm-setting-pppoe.c | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/libnm-util/nm-setting-pppoe.c b/libnm-util/nm-setting-pppoe.c index 2785dfa9ce..f37ec000fc 100644 --- a/libnm-util/nm-setting-pppoe.c +++ b/libnm-util/nm-setting-pppoe.c @@ -257,6 +257,18 @@ get_property (GObject *object, guint prop_id, } } +static void +finalize (GObject *object) +{ + NMSettingPPPOEPrivate *priv = NM_SETTING_PPPOE_GET_PRIVATE (object); + + g_free (priv->username); + g_free (priv->password); + g_free (priv->service); + + G_OBJECT_CLASS (nm_setting_pppoe_parent_class)->finalize (object); +} + static void nm_setting_pppoe_class_init (NMSettingPPPOEClass *setting_class) { @@ -268,6 +280,7 @@ nm_setting_pppoe_class_init (NMSettingPPPOEClass *setting_class) /* virtual methods */ object_class->set_property = set_property; object_class->get_property = get_property; + object_class->finalize = finalize; parent_class->verify = verify; parent_class->need_secrets = need_secrets;