libnm: fix memleak for app_fcoe_mode in NMSettingDcb

This commit is contained in:
Thomas Haller 2015-02-04 13:53:16 +01:00
parent fdd09340ce
commit 052198f4b9
2 changed files with 26 additions and 2 deletions

View file

@ -50,7 +50,7 @@ NM_SETTING_REGISTER_TYPE (NM_TYPE_SETTING_DCB)
typedef struct {
NMSettingDcbFlags app_fcoe_flags;
gint app_fcoe_priority;
const char * app_fcoe_mode;
char * app_fcoe_mode;
NMSettingDcbFlags app_iscsi_flags;
gint app_iscsi_priority;
@ -793,6 +793,7 @@ set_property (GObject *object, guint prop_id,
priv->app_fcoe_priority = g_value_get_int (value);
break;
case PROP_APP_FCOE_MODE:
g_free (priv->app_fcoe_mode);
priv->app_fcoe_mode = g_value_dup_string (value);
break;
case PROP_APP_ISCSI_FLAGS:
@ -896,6 +897,16 @@ get_property (GObject *object, guint prop_id,
}
}
static void
finalize (GObject *object)
{
NMSettingDcbPrivate *priv = NM_SETTING_DCB_GET_PRIVATE (object);
g_free (priv->app_fcoe_mode);
G_OBJECT_CLASS (nm_setting_dcb_parent_class)->finalize (object);
}
static void
nm_setting_dcb_class_init (NMSettingDcbClass *setting_class)
{
@ -907,6 +918,7 @@ nm_setting_dcb_class_init (NMSettingDcbClass *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 */

View file

@ -78,7 +78,7 @@ NM_SETTING_REGISTER_TYPE (NM_TYPE_SETTING_DCB)
typedef struct {
NMSettingDcbFlags app_fcoe_flags;
gint app_fcoe_priority;
const char * app_fcoe_mode;
char * app_fcoe_mode;
NMSettingDcbFlags app_iscsi_flags;
gint app_iscsi_priority;
@ -833,6 +833,7 @@ set_property (GObject *object, guint prop_id,
priv->app_fcoe_priority = g_value_get_int (value);
break;
case PROP_APP_FCOE_MODE:
g_free (priv->app_fcoe_mode);
priv->app_fcoe_mode = g_value_dup_string (value);
break;
case PROP_APP_ISCSI_FLAGS:
@ -944,6 +945,16 @@ get_property (GObject *object, guint prop_id,
}
}
static void
finalize (GObject *object)
{
NMSettingDcbPrivate *priv = NM_SETTING_DCB_GET_PRIVATE (object);
g_free (priv->app_fcoe_mode);
G_OBJECT_CLASS (nm_setting_dcb_parent_class)->finalize (object);
}
static void
nm_setting_dcb_class_init (NMSettingDcbClass *setting_class)
{
@ -955,6 +966,7 @@ nm_setting_dcb_class_init (NMSettingDcbClass *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 */