X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;f=src%2Flibsystemd-network%2Ftest-lldp.c;h=ee74ebd418951fe5b566ecf782451ba2f412caed;hb=5569b33a8ce1968200db801ef28585347103239c;hp=288aac5961fa62976e22399aaa1afdecb80efa93;hpb=889cec8d58a00c8362ab0c6493bad39e9c6849bc;p=elogind.git diff --git a/src/libsystemd-network/test-lldp.c b/src/libsystemd-network/test-lldp.c index 288aac596..ee74ebd41 100644 --- a/src/libsystemd-network/test-lldp.c +++ b/src/libsystemd-network/test-lldp.c @@ -45,13 +45,13 @@ static struct ether_addr mac_addr = { static int lldp_build_tlv_packet(tlv_packet **ret) { _cleanup_tlv_packet_free_ tlv_packet *m = NULL; const uint8_t lldp_dst[] = LLDP_MULTICAST_ADDR; - struct ether_header ether; + struct ether_header ether = { + .ether_type = htons(ETHERTYPE_LLDP), + }; /* Append ethernet header */ - memset(ðer, 0, sizeof(ether)); memcpy(ðer.ether_dhost, lldp_dst, ETHER_ADDR_LEN); memcpy(ðer.ether_shost, &mac_addr, ETHER_ADDR_LEN); - ether.ether_type = htons(ETHERTYPE_LLDP); assert_se(tlv_packet_new(&m) >= 0); @@ -131,7 +131,8 @@ static int lldp_parse_chassis_tlv(tlv_packet *m, uint8_t *type) { } static int lldp_parse_port_id_tlv(tlv_packet *m) { - char *str = NULL, *p; + _cleanup_free_ char *p = NULL; + char *str = NULL; uint16_t length; uint8_t subtype; @@ -143,9 +144,8 @@ static int lldp_parse_port_id_tlv(tlv_packet *m) { case LLDP_PORT_SUBTYPE_INTERFACE_NAME: assert_se(tlv_packet_read_string(m, &str, &length) >= 0); - p = malloc0(length + 1); + p = strndup(str, length-1); assert_se(p); - strncpy(p, str, length-1); assert_se(streq(p, TEST_LLDP_PORT) == 1); break; @@ -159,14 +159,15 @@ static int lldp_parse_port_id_tlv(tlv_packet *m) { } static int lldp_parse_system_name_tlv(tlv_packet *m) { - char *str = NULL, *p; + _cleanup_free_ char *p = NULL; + char *str = NULL; uint16_t length; assert_se(lldp_tlv_packet_enter_container(m, LLDP_TYPE_SYSTEM_NAME) >= 0); assert_se(tlv_packet_read_string(m, &str, &length) >= 0); - p = malloc0(length + 1); - strncpy(p, str, length); + p = strndup(str, length); + assert_se(p); assert_se(streq(p, TEST_LLDP_TYPE_SYSTEM_NAME) == 1); @@ -176,15 +177,15 @@ static int lldp_parse_system_name_tlv(tlv_packet *m) { } static int lldp_parse_system_desc_tlv(tlv_packet *m) { - char *str = NULL, *p; + _cleanup_free_ char *p = NULL; + char *str = NULL; uint16_t length; assert_se(lldp_tlv_packet_enter_container(m, LLDP_TYPE_SYSTEM_DESCRIPTION) >= 0); assert_se(tlv_packet_read_string(m, &str, &length) >= 0); - p = malloc0(length + 1); + p = strndup(str, length); assert_se(p); - strncpy(p, str, length); assert_se(streq(p, TEST_LLDP_TYPE_SYSTEM_DESC) == 1);