From 88855bbbeb31a6db3bd9d8fb48d755d6c9bf050d Mon Sep 17 00:00:00 2001 From: Thomas Haller Date: Sat, 7 Feb 2015 17:21:30 +0100 Subject: [PATCH] libnm: fix memleak for config in NMSettingTeamPort (cherry picked from commit 8cb6d70e5b91170c7b89ede53078025be959a9f2) --- libnm-core/nm-setting-team-port.c | 12 ++++++++++++ libnm-util/nm-setting-team-port.c | 12 ++++++++++++ 2 files changed, 24 insertions(+) diff --git a/libnm-core/nm-setting-team-port.c b/libnm-core/nm-setting-team-port.c index b5125753c3..7fbf8620f1 100644 --- a/libnm-core/nm-setting-team-port.c +++ b/libnm-core/nm-setting-team-port.c @@ -130,6 +130,7 @@ set_property (GObject *object, guint prop_id, switch (prop_id) { case PROP_CONFIG: + g_free (priv->config); priv->config = g_value_dup_string (value); break; default: @@ -154,6 +155,16 @@ get_property (GObject *object, guint prop_id, } } +static void +finalize (GObject *object) +{ + NMSettingTeamPortPrivate *priv = NM_SETTING_TEAM_PORT_GET_PRIVATE (object); + + g_free (priv->config); + + G_OBJECT_CLASS (nm_setting_team_port_parent_class)->finalize (object); +} + static void nm_setting_team_port_class_init (NMSettingTeamPortClass *setting_class) { @@ -165,6 +176,7 @@ nm_setting_team_port_class_init (NMSettingTeamPortClass *setting_class) /* virtual methods */ object_class->set_property = set_property; object_class->get_property = get_property; + object_class->finalize = finalize; parent_class->verify = verify; /* Properties */ diff --git a/libnm-util/nm-setting-team-port.c b/libnm-util/nm-setting-team-port.c index 6bc71c981d..9992f58a28 100644 --- a/libnm-util/nm-setting-team-port.c +++ b/libnm-util/nm-setting-team-port.c @@ -130,6 +130,7 @@ set_property (GObject *object, guint prop_id, switch (prop_id) { case PROP_CONFIG: + g_free (priv->config); priv->config = g_value_dup_string (value); break; default: @@ -154,6 +155,16 @@ get_property (GObject *object, guint prop_id, } } +static void +finalize (GObject *object) +{ + NMSettingTeamPortPrivate *priv = NM_SETTING_TEAM_PORT_GET_PRIVATE (object); + + g_free (priv->config); + + G_OBJECT_CLASS (nm_setting_team_port_parent_class)->finalize (object); +} + static void nm_setting_team_port_class_init (NMSettingTeamPortClass *setting_class) { @@ -165,6 +176,7 @@ nm_setting_team_port_class_init (NMSettingTeamPortClass *setting_class) /* virtual methods */ object_class->set_property = set_property; object_class->get_property = get_property; + object_class->finalize = finalize; parent_class->verify = verify; /* Properties */