summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThomas Haller <thaller@redhat.com>2019-01-30 07:42:33 +0100
committerBeniamino Galvani <bgalvani@redhat.com>2019-03-27 10:47:24 +0100
commit5b51a1a9f711d7183ad2b11a1803714247b7faed (patch)
treebdc7e63dfdf43db2dd49f3f24e72997538031630
parent95aa7ac91e8d1b4c98fd4d2f8f87bddc03921fbe (diff)
downloadNetworkManager-bg/lldp-enh-rh1652211.tar.gz
libnm/lldp: cleanup asserting for valid NMLldpNeighbor agumentbg/lldp-enh-rh1652211
At a few places we checked whether neighbor->attrs was non-NULL. That is not necessary, unless we'd like to catch some dangling/invalid pointers. The attrs hash is always set otherwise. Instead of just dropping the check, add a NM_IS_LLDP_NEIGHBOR() macro (inline function).
-rw-r--r--libnm/nm-device.c31
1 files changed, 19 insertions, 12 deletions
diff --git a/libnm/nm-device.c b/libnm/nm-device.c
index 9b19673d3d..2af578183b 100644
--- a/libnm/nm-device.c
+++ b/libnm/nm-device.c
@@ -2649,6 +2649,18 @@ nm_device_get_setting_type (NMDevice *device)
return NM_DEVICE_GET_CLASS (device)->get_setting_type (device);
}
+/*****************************************************************************/
+
+static gboolean
+NM_IS_LLDP_NEIGHBOR (const NMLldpNeighbor *self)
+{
+ nm_assert ( !self
+ || ( self->refcount > 0
+ && self->attrs));
+ return self
+ && self->refcount > 0;
+}
+
/**
* nm_lldp_neighbor_new:
*
@@ -2699,8 +2711,7 @@ nm_lldp_neighbor_dup (NMLldpNeighbor *neighbor)
void
nm_lldp_neighbor_ref (NMLldpNeighbor *neighbor)
{
- g_return_if_fail (neighbor);
- g_return_if_fail (neighbor->refcount > 0);
+ g_return_if_fail (NM_IS_LLDP_NEIGHBOR (neighbor));
neighbor->refcount++;
}
@@ -2717,11 +2728,9 @@ nm_lldp_neighbor_ref (NMLldpNeighbor *neighbor)
void
nm_lldp_neighbor_unref (NMLldpNeighbor *neighbor)
{
- g_return_if_fail (neighbor);
- g_return_if_fail (neighbor->refcount > 0);
+ g_return_if_fail (NM_IS_LLDP_NEIGHBOR (neighbor));
if (--neighbor->refcount == 0) {
- g_return_if_fail (neighbor->attrs);
g_hash_table_unref (neighbor->attrs);
g_free (neighbor);
}
@@ -2744,8 +2753,7 @@ nm_lldp_neighbor_get_attr_names (NMLldpNeighbor *neighbor)
const char *key;
GPtrArray *names;
- g_return_val_if_fail (neighbor, NULL);
- g_return_val_if_fail (neighbor->attrs, NULL);
+ g_return_val_if_fail (NM_IS_LLDP_NEIGHBOR (neighbor), NULL);
names = g_ptr_array_new ();
@@ -2776,7 +2784,7 @@ nm_lldp_neighbor_get_attr_string_value (NMLldpNeighbor *neighbor, const char *na
{
GVariant *variant;
- g_return_val_if_fail (neighbor, FALSE);
+ g_return_val_if_fail (NM_IS_LLDP_NEIGHBOR (neighbor), FALSE);
g_return_val_if_fail (name && name[0], FALSE);
variant = g_hash_table_lookup (neighbor->attrs, name);
@@ -2806,7 +2814,7 @@ nm_lldp_neighbor_get_attr_uint_value (NMLldpNeighbor *neighbor, const char *name
{
GVariant *variant;
- g_return_val_if_fail (neighbor, FALSE);
+ g_return_val_if_fail (NM_IS_LLDP_NEIGHBOR (neighbor), FALSE);
g_return_val_if_fail (name && name[0], FALSE);
variant = g_hash_table_lookup (neighbor->attrs, name);
@@ -2833,7 +2841,7 @@ nm_lldp_neighbor_get_attr_uint_value (NMLldpNeighbor *neighbor, const char *name
GVariant *
nm_lldp_neighbor_get_attr_value (NMLldpNeighbor *neighbor, const char *name)
{
- g_return_val_if_fail (neighbor, FALSE);
+ g_return_val_if_fail (NM_IS_LLDP_NEIGHBOR (neighbor), FALSE);
g_return_val_if_fail (name && name[0], FALSE);
return g_hash_table_lookup (neighbor->attrs, name);
@@ -2855,7 +2863,7 @@ nm_lldp_neighbor_get_attr_type (NMLldpNeighbor *neighbor, const char *name)
{
GVariant *variant;
- g_return_val_if_fail (neighbor, NULL);
+ g_return_val_if_fail (NM_IS_LLDP_NEIGHBOR (neighbor), NULL);
g_return_val_if_fail (name && name[0], NULL);
variant = g_hash_table_lookup (neighbor->attrs, name);
@@ -2863,5 +2871,4 @@ nm_lldp_neighbor_get_attr_type (NMLldpNeighbor *neighbor, const char *name)
return g_variant_get_type (variant);
else
return NULL;
-
}