systemd/lldp: avoid compiler warnings in lldp_tfl_package_read* functions

gcc 5.1.1 wrongly warns about uninitialized variable @r2 when compiling
with -Og. Refactor the code to avoid the warnings.

Related: https://github.com/systemd/systemd/pull/1735
This commit is contained in:
Thomas Haller 2015-10-31 14:36:15 +01:00
parent da7cc97f5e
commit ea00693b00

View file

@ -388,12 +388,11 @@ static int lldp_tlv_packet_read_u16_tlv(tlv_packet *tlv, uint16_t type, uint16_t
r = lldp_tlv_packet_enter_container(tlv, type);
if (r < 0)
goto out;
return r;
r = tlv_packet_read_u16(tlv, value);
r2 = lldp_tlv_packet_exit_container(tlv);
out:
return r < 0 ? r : r2;
}
@ -430,18 +429,18 @@ int sd_lldp_packet_read_chassis_id(tlv_packet *tlv,
r = lldp_tlv_packet_enter_container(tlv, LLDP_TYPE_CHASSIS_ID);
if (r < 0)
goto out2;
return r;
r = tlv_packet_read_u8(tlv, &subtype);
if (r < 0)
goto out1;
goto out;
switch (subtype) {
case LLDP_CHASSIS_SUBTYPE_MAC_ADDRESS:
r = tlv_packet_read_bytes(tlv, data, length);
if (r < 0)
goto out1;
goto out;
break;
default:
@ -451,10 +450,9 @@ int sd_lldp_packet_read_chassis_id(tlv_packet *tlv,
*type = subtype;
out1:
out:
r2 = lldp_tlv_packet_exit_container(tlv);
out2:
return r < 0 ? r : r2;
}
@ -470,11 +468,11 @@ int sd_lldp_packet_read_port_id(tlv_packet *tlv,
r = lldp_tlv_packet_enter_container(tlv, LLDP_TYPE_PORT_ID);
if (r < 0)
goto out2;
return r;
r = tlv_packet_read_u8(tlv, &subtype);
if (r < 0)
goto out1;
goto out;
switch (subtype) {
case LLDP_PORT_SUBTYPE_PORT_COMPONENT:
@ -484,7 +482,7 @@ int sd_lldp_packet_read_port_id(tlv_packet *tlv,
r = tlv_packet_read_string(tlv, &s, length);
if (r < 0)
goto out1;
goto out;
*data = (uint8_t *) s;
@ -493,7 +491,7 @@ int sd_lldp_packet_read_port_id(tlv_packet *tlv,
r = tlv_packet_read_bytes(tlv, data, length);
if (r < 0)
goto out1;
goto out;
break;
default:
@ -503,10 +501,9 @@ int sd_lldp_packet_read_port_id(tlv_packet *tlv,
*type = subtype;
out1:
out:
r2 = lldp_tlv_packet_exit_container(tlv);
out2:
return r < 0 ? r : r2;
}
@ -543,12 +540,11 @@ int sd_lldp_packet_read_port_vlan_id(tlv_packet *tlv, uint16_t *id) {
r = lldp_tlv_packet_enter_container_oui(tlv, LLDP_OUI_802_1, LLDP_OUI_SUBTYPE_802_1_PORT_VLAN_ID);
if (r < 0)
goto out;
return r;
r = tlv_packet_read_u16(tlv, id);
r2 = lldp_tlv_packet_exit_container(tlv);
out:
return r < 0 ? r : r2;
}
@ -559,7 +555,7 @@ int sd_lldp_packet_read_port_protocol_vlan_id(sd_lldp_packet *tlv, uint8_t *flag
r = lldp_tlv_packet_enter_container_oui(tlv, LLDP_OUI_802_1, LLDP_OUI_SUBTYPE_802_1_PORT_PROTOCOL_VLAN_ID);
if (r < 0)
goto out;
return r;
r = tlv_packet_read_u8(tlv, flags);
if (r >= 0)
@ -567,7 +563,6 @@ int sd_lldp_packet_read_port_protocol_vlan_id(sd_lldp_packet *tlv, uint8_t *flag
r2 = lldp_tlv_packet_exit_container(tlv);
out:
return r < 0 ? r : r2;
}
@ -579,7 +574,7 @@ int sd_lldp_packet_read_vlan_name(tlv_packet *tlv, uint16_t *vlan_id, char **nam
r = lldp_tlv_packet_enter_container_oui(tlv, LLDP_OUI_802_1, LLDP_OUI_SUBTYPE_802_1_VLAN_NAME);
if (r < 0)
goto out;
return r;
r = tlv_packet_read_u16(tlv, vlan_id);
if (r >= 0)
@ -592,7 +587,6 @@ int sd_lldp_packet_read_vlan_name(tlv_packet *tlv, uint16_t *vlan_id, char **nam
r2 = lldp_tlv_packet_exit_container(tlv);
out:
return r < 0 ? r : r2;
}
@ -603,12 +597,11 @@ int sd_lldp_packet_read_management_vid(tlv_packet *tlv, uint16_t *id) {
r = lldp_tlv_packet_enter_container_oui(tlv, LLDP_OUI_802_1, LLDP_OUI_SUBTYPE_802_1_MANAGEMENT_VID);
if (r < 0)
goto out;
return r;
r = tlv_packet_read_u16(tlv, id);
r2 = lldp_tlv_packet_exit_container(tlv);
out:
return r < 0 ? r : r2;
}
@ -619,7 +612,7 @@ int sd_lldp_packet_read_link_aggregation(sd_lldp_packet *tlv, uint8_t *status, u
r = lldp_tlv_packet_enter_container_oui(tlv, LLDP_OUI_802_1, LLDP_OUI_SUBTYPE_802_1_LINK_AGGREGATION);
if (r < 0)
goto out;
return r;
r = tlv_packet_read_u8(tlv, status);
if (r >= 0)
@ -627,7 +620,6 @@ int sd_lldp_packet_read_link_aggregation(sd_lldp_packet *tlv, uint8_t *status, u
r2 = lldp_tlv_packet_exit_container(tlv);
out:
return r < 0 ? r : r2;
}