Submitted By: Armin K. Date: 2012-06-03 Initial Package Version: 0.9.4.0 Upstream Status: In upstream SVN Origin: Upstream Description: libnm-glib: initialize GError, else invalid free() crash can occur (rh #809123) libnm-glib: more ensure_inited() fixing ppp: don't use struct ifpppstatsreq that was removed from linux/ip_ppp.h diff -Naur NetworkManager.orig/libnm-glib/nm-access-point.c NetworkManager/libnm-glib/nm-access-point.c --- NetworkManager.orig/libnm-glib/nm-access-point.c 2012-02-27 16:57:16.000000000 +0100 +++ NetworkManager/libnm-glib/nm-access-point.c 2012-06-03 21:00:42.173840751 +0200 @@ -464,6 +464,8 @@ { NMAccessPoint *ap = NM_ACCESS_POINT (object); + _nm_object_ensure_inited (NM_OBJECT (object)); + switch (prop_id) { case PROP_FLAGS: g_value_set_uint (value, nm_access_point_get_flags (ap)); diff -Naur NetworkManager.orig/libnm-glib/nm-active-connection.c NetworkManager/libnm-glib/nm-active-connection.c --- NetworkManager.orig/libnm-glib/nm-active-connection.c 2012-03-12 22:25:57.000000000 +0100 +++ NetworkManager/libnm-glib/nm-active-connection.c 2012-06-03 21:00:42.174840767 +0200 @@ -394,6 +394,8 @@ { NMActiveConnection *self = NM_ACTIVE_CONNECTION (object); + _nm_object_ensure_inited (NM_OBJECT (object)); + switch (prop_id) { case PROP_CONNECTION: g_value_set_string (value, nm_active_connection_get_connection (self)); diff -Naur NetworkManager.orig/libnm-glib/nm-client.c NetworkManager/libnm-glib/nm-client.c --- NetworkManager.orig/libnm-glib/nm-client.c 2012-03-21 18:29:52.000000000 +0100 +++ NetworkManager/libnm-glib/nm-client.c 2012-06-03 21:00:42.174840767 +0200 @@ -1502,6 +1502,8 @@ NMClient *self = NM_CLIENT (object); NMClientPrivate *priv = NM_CLIENT_GET_PRIVATE (self); + _nm_object_ensure_inited (NM_OBJECT (object)); + switch (prop_id) { case PROP_VERSION: g_value_set_string (value, nm_client_get_version (self)); diff -Naur NetworkManager.orig/libnm-glib/nm-device-bond.c NetworkManager/libnm-glib/nm-device-bond.c --- NetworkManager.orig/libnm-glib/nm-device-bond.c 2012-03-20 21:40:12.000000000 +0100 +++ NetworkManager/libnm-glib/nm-device-bond.c 2012-06-03 21:00:42.174840767 +0200 @@ -241,6 +241,8 @@ { NMDeviceBond *device = NM_DEVICE_BOND (object); + _nm_object_ensure_inited (NM_OBJECT (object)); + switch (prop_id) { case PROP_HW_ADDRESS: g_value_set_string (value, nm_device_bond_get_hw_address (device)); diff -Naur NetworkManager.orig/libnm-glib/nm-device-bt.c NetworkManager/libnm-glib/nm-device-bt.c --- NetworkManager.orig/libnm-glib/nm-device-bt.c 2012-03-20 21:40:12.000000000 +0100 +++ NetworkManager/libnm-glib/nm-device-bt.c 2012-06-03 21:00:42.174840767 +0200 @@ -303,6 +303,8 @@ { NMDeviceBt *device = NM_DEVICE_BT (object); + _nm_object_ensure_inited (NM_OBJECT (object)); + switch (prop_id) { case PROP_HW_ADDRESS: g_value_set_string (value, nm_device_bt_get_hw_address (device)); diff -Naur NetworkManager.orig/libnm-glib/nm-device.c NetworkManager/libnm-glib/nm-device.c --- NetworkManager.orig/libnm-glib/nm-device.c 2012-03-23 21:54:25.000000000 +0100 +++ NetworkManager/libnm-glib/nm-device.c 2012-06-03 21:00:42.175840783 +0200 @@ -313,6 +313,8 @@ NMDevice *device = NM_DEVICE (object); NMDevicePrivate *priv = NM_DEVICE_GET_PRIVATE (device); + _nm_object_ensure_inited (NM_OBJECT (object)); + switch (prop_id) { case PROP_DEVICE_TYPE: g_value_set_uint (value, nm_device_get_device_type (device)); diff -Naur NetworkManager.orig/libnm-glib/nm-device-ethernet.c NetworkManager/libnm-glib/nm-device-ethernet.c --- NetworkManager.orig/libnm-glib/nm-device-ethernet.c 2012-03-20 21:40:12.000000000 +0100 +++ NetworkManager/libnm-glib/nm-device-ethernet.c 2012-06-03 21:00:42.175840783 +0200 @@ -311,6 +311,8 @@ { NMDeviceEthernet *device = NM_DEVICE_ETHERNET (object); + _nm_object_ensure_inited (NM_OBJECT (object)); + switch (prop_id) { case PROP_HW_ADDRESS: g_value_set_string (value, nm_device_ethernet_get_hw_address (device)); diff -Naur NetworkManager.orig/libnm-glib/nm-device-infiniband.c NetworkManager/libnm-glib/nm-device-infiniband.c --- NetworkManager.orig/libnm-glib/nm-device-infiniband.c 2012-03-20 21:40:12.000000000 +0100 +++ NetworkManager/libnm-glib/nm-device-infiniband.c 2012-06-03 21:00:42.175840783 +0200 @@ -250,6 +250,8 @@ { NMDeviceInfiniband *device = NM_DEVICE_INFINIBAND (object); + _nm_object_ensure_inited (NM_OBJECT (object)); + switch (prop_id) { case PROP_HW_ADDRESS: g_value_set_string (value, nm_device_infiniband_get_hw_address (device)); diff -Naur NetworkManager.orig/libnm-glib/nm-device-modem.c NetworkManager/libnm-glib/nm-device-modem.c --- NetworkManager.orig/libnm-glib/nm-device-modem.c 2012-03-20 21:40:12.000000000 +0100 +++ NetworkManager/libnm-glib/nm-device-modem.c 2012-06-03 21:00:42.175840783 +0200 @@ -205,6 +205,8 @@ { NMDeviceModem *self = NM_DEVICE_MODEM (object); + _nm_object_ensure_inited (NM_OBJECT (object)); + switch (prop_id) { case PROP_MODEM_CAPS: g_value_set_uint (value, nm_device_modem_get_modem_capabilities (self)); diff -Naur NetworkManager.orig/libnm-glib/nm-device-olpc-mesh.c NetworkManager/libnm-glib/nm-device-olpc-mesh.c --- NetworkManager.orig/libnm-glib/nm-device-olpc-mesh.c 2012-03-20 21:40:12.000000000 +0100 +++ NetworkManager/libnm-glib/nm-device-olpc-mesh.c 2012-06-03 21:00:42.176840799 +0200 @@ -257,6 +257,8 @@ { NMDeviceOlpcMesh *device = NM_DEVICE_OLPC_MESH (object); + _nm_object_ensure_inited (NM_OBJECT (object)); + switch (prop_id) { case PROP_HW_ADDRESS: g_value_set_string (value, nm_device_olpc_mesh_get_hw_address (device)); diff -Naur NetworkManager.orig/libnm-glib/nm-device-vlan.c NetworkManager/libnm-glib/nm-device-vlan.c --- NetworkManager.orig/libnm-glib/nm-device-vlan.c 2012-03-20 21:40:12.000000000 +0100 +++ NetworkManager/libnm-glib/nm-device-vlan.c 2012-06-03 21:00:42.176840799 +0200 @@ -264,6 +264,8 @@ { NMDeviceVlan *device = NM_DEVICE_VLAN (object); + _nm_object_ensure_inited (NM_OBJECT (object)); + switch (prop_id) { case PROP_HW_ADDRESS: g_value_set_string (value, nm_device_vlan_get_hw_address (device)); diff -Naur NetworkManager.orig/libnm-glib/nm-device-wifi.c NetworkManager/libnm-glib/nm-device-wifi.c --- NetworkManager.orig/libnm-glib/nm-device-wifi.c 2012-03-20 21:40:12.000000000 +0100 +++ NetworkManager/libnm-glib/nm-device-wifi.c 2012-06-03 21:00:42.176840799 +0200 @@ -501,6 +501,8 @@ { NMDeviceWifi *self = NM_DEVICE_WIFI (object); + _nm_object_ensure_inited (NM_OBJECT (object)); + switch (prop_id) { case PROP_HW_ADDRESS: g_value_set_string (value, nm_device_wifi_get_hw_address (self)); diff -Naur NetworkManager.orig/libnm-glib/nm-device-wimax.c NetworkManager/libnm-glib/nm-device-wimax.c --- NetworkManager.orig/libnm-glib/nm-device-wimax.c 2012-03-20 21:40:12.000000000 +0100 +++ NetworkManager/libnm-glib/nm-device-wimax.c 2012-06-03 21:00:42.176840799 +0200 @@ -444,6 +444,8 @@ { NMDeviceWimax *self = NM_DEVICE_WIMAX (object); + _nm_object_ensure_inited (NM_OBJECT (object)); + switch (prop_id) { case PROP_HW_ADDRESS: g_value_set_string (value, nm_device_wimax_get_hw_address (self)); diff -Naur NetworkManager.orig/libnm-glib/nm-dhcp4-config.c NetworkManager/libnm-glib/nm-dhcp4-config.c --- NetworkManager.orig/libnm-glib/nm-dhcp4-config.c 2012-02-27 16:57:16.000000000 +0100 +++ NetworkManager/libnm-glib/nm-dhcp4-config.c 2012-06-03 21:00:42.176840799 +0200 @@ -132,6 +132,8 @@ { NMDHCP4Config *self = NM_DHCP4_CONFIG (object); + _nm_object_ensure_inited (NM_OBJECT (object)); + switch (prop_id) { case PROP_OPTIONS: g_value_set_boxed (value, nm_dhcp4_config_get_options (self)); diff -Naur NetworkManager.orig/libnm-glib/nm-dhcp6-config.c NetworkManager/libnm-glib/nm-dhcp6-config.c --- NetworkManager.orig/libnm-glib/nm-dhcp6-config.c 2012-02-27 16:57:16.000000000 +0100 +++ NetworkManager/libnm-glib/nm-dhcp6-config.c 2012-06-03 21:00:42.176840799 +0200 @@ -132,6 +132,8 @@ { NMDHCP6Config *self = NM_DHCP6_CONFIG (object); + _nm_object_ensure_inited (NM_OBJECT (object)); + switch (prop_id) { case PROP_OPTIONS: g_value_set_boxed (value, nm_dhcp6_config_get_options (self)); diff -Naur NetworkManager.orig/libnm-glib/nm-ip4-config.c NetworkManager/libnm-glib/nm-ip4-config.c --- NetworkManager.orig/libnm-glib/nm-ip4-config.c 2012-02-27 16:57:16.000000000 +0100 +++ NetworkManager/libnm-glib/nm-ip4-config.c 2012-06-03 21:00:42.177840815 +0200 @@ -187,6 +187,8 @@ NMIP4Config *self = NM_IP4_CONFIG (object); NMIP4ConfigPrivate *priv = NM_IP4_CONFIG_GET_PRIVATE (self); + _nm_object_ensure_inited (NM_OBJECT (object)); + switch (prop_id) { case PROP_ADDRESSES: nm_utils_ip4_addresses_to_gvalue (priv->addresses, value); diff -Naur NetworkManager.orig/libnm-glib/nm-ip6-config.c NetworkManager/libnm-glib/nm-ip6-config.c --- NetworkManager.orig/libnm-glib/nm-ip6-config.c 2012-02-27 16:57:16.000000000 +0100 +++ NetworkManager/libnm-glib/nm-ip6-config.c 2012-06-03 21:00:42.177840815 +0200 @@ -268,6 +268,8 @@ NMIP6Config *self = NM_IP6_CONFIG (object); NMIP6ConfigPrivate *priv = NM_IP6_CONFIG_GET_PRIVATE (self); + _nm_object_ensure_inited (NM_OBJECT (object)); + switch (prop_id) { case PROP_ADDRESSES: nm_utils_ip6_addresses_to_gvalue (priv->addresses, value); diff -Naur NetworkManager.orig/libnm-glib/nm-remote-settings.c NetworkManager/libnm-glib/nm-remote-settings.c --- NetworkManager.orig/libnm-glib/nm-remote-settings.c 2012-03-21 18:31:38.000000000 +0100 +++ NetworkManager/libnm-glib/nm-remote-settings.c 2012-06-03 21:00:42.177840815 +0200 @@ -109,7 +109,7 @@ _nm_remote_settings_ensure_inited (NMRemoteSettings *self) { NMRemoteSettingsPrivate *priv = NM_REMOTE_SETTINGS_GET_PRIVATE (self); - GError *error; + GError *error = NULL; if (!priv->inited) { if (!g_initable_init (G_INITABLE (self), NULL, &error)) { @@ -1061,6 +1061,8 @@ { NMRemoteSettingsPrivate *priv = NM_REMOTE_SETTINGS_GET_PRIVATE (object); + _nm_remote_settings_ensure_inited (NM_REMOTE_SETTINGS (object)); + switch (prop_id) { case PROP_BUS: g_value_set_boxed (value, priv->bus); diff -Naur NetworkManager.orig/libnm-glib/nm-vpn-connection.c NetworkManager/libnm-glib/nm-vpn-connection.c --- NetworkManager.orig/libnm-glib/nm-vpn-connection.c 2012-02-27 16:57:16.000000000 +0100 +++ NetworkManager/libnm-glib/nm-vpn-connection.c 2012-06-03 21:00:42.177840815 +0200 @@ -211,6 +211,8 @@ { NMVPNConnection *self = NM_VPN_CONNECTION (object); + _nm_object_ensure_inited (NM_OBJECT (object)); + switch (prop_id) { case PROP_VPN_STATE: g_value_set_uint (value, nm_vpn_connection_get_vpn_state (self)); diff -Naur NetworkManager.orig/libnm-glib/nm-wimax-nsp.c NetworkManager/libnm-glib/nm-wimax-nsp.c --- NetworkManager.orig/libnm-glib/nm-wimax-nsp.c 2012-02-27 16:57:16.000000000 +0100 +++ NetworkManager/libnm-glib/nm-wimax-nsp.c 2012-06-03 21:00:42.177840815 +0200 @@ -247,6 +247,8 @@ { NMWimaxNsp *nsp = NM_WIMAX_NSP (object); + _nm_object_ensure_inited (NM_OBJECT (object)); + switch (prop_id) { case PROP_NAME: g_value_set_string (value, nm_wimax_nsp_get_name (nsp)); diff -Naur NetworkManager.orig/src/ppp-manager/nm-ppp-manager.c NetworkManager/src/ppp-manager/nm-ppp-manager.c --- NetworkManager.orig/src/ppp-manager/nm-ppp-manager.c 2012-03-20 22:13:41.000000000 +0100 +++ NetworkManager/src/ppp-manager/nm-ppp-manager.c 2012-06-03 21:01:35.545685909 +0200 @@ -304,18 +304,20 @@ { NMPPPManager *manager = NM_PPP_MANAGER (user_data); NMPPPManagerPrivate *priv = NM_PPP_MANAGER_GET_PRIVATE (manager); - struct ifpppstatsreq req; + struct ifreq req; + struct ppp_stats stats; memset (&req, 0, sizeof (req)); - req.stats_ptr = (caddr_t) &req.stats; + memset (&stats, 0, sizeof (stats)); + req.ifr_data = (caddr_t) &stats; - strncpy (req.ifr__name, priv->ip_iface, sizeof (req.ifr__name)); + strncpy (req.ifr_name, priv->ip_iface, sizeof (req.ifr_name)); if (ioctl (priv->monitor_fd, SIOCGPPPSTATS, &req) < 0) { nm_log_warn (LOGD_PPP, "could not read ppp stats: %s", strerror (errno)); } else { g_signal_emit (manager, signals[STATS], 0, - req.stats.p.ppp_ibytes, - req.stats.p.ppp_obytes); + stats.p.ppp_ibytes, + stats.p.ppp_obytes); } return TRUE;