aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJoão Valverde <joao.valverde@tecnico.ulisboa.pt>2016-06-02 17:17:43 +0100
committerJoão Valverde <j@v6e.pt>2016-07-08 19:51:55 +0000
commit4feb116437cb399355450d1f508f1da55f97fa28 (patch)
treef2182f4bd83eb606505bf56f76da7a3f4adb3501
parent44c2560606405852bd417cc292025336801a0f2c (diff)
IPv6: Remove a memcpy()
Replace CamelCase and remove unnecessary casts too. Change-Id: Iacf56912448c0e0dc0fe21477d6b71ba9caba69a Reviewed-on: https://code.wireshark.org/review/16344 Reviewed-by: Michael Mann <mmann78@netscape.net> Petri-Dish: Michael Mann <mmann78@netscape.net> Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org> Reviewed-by: João Valverde <j@v6e.pt>
-rw-r--r--epan/dissectors/packet-ipv6.c30
1 files changed, 14 insertions, 16 deletions
diff --git a/epan/dissectors/packet-ipv6.c b/epan/dissectors/packet-ipv6.c
index aa43606..0f1e228 100644
--- a/epan/dissectors/packet-ipv6.c
+++ b/epan/dissectors/packet-ipv6.c
@@ -915,17 +915,15 @@ dissect_routing6(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* data
guint8 pad;
guint32 reserved;
gint rpl_addr_count;
+ const struct e_in6_addr *ip6_dst_addr, *ip6_src_addr;
/* IPv6 destination address used for elided bytes */
- struct e_in6_addr dstAddr;
+ ip6_dst_addr = (const struct e_in6_addr *)pinfo->dst.data;
/* IPv6 source address used for strict checking */
- struct e_in6_addr srcAddr;
-
- memcpy((guint8 *)&dstAddr, pinfo->dst.data, pinfo->dst.len);
- memcpy((guint8 *)&srcAddr, pinfo->src.data, pinfo->src.len);
+ ip6_src_addr = (const struct e_in6_addr *)pinfo->src.data;
/* from RFC6554: Multicast addresses MUST NOT appear in the IPv6 Destination Address field */
- if (in6_is_addr_multicast(&dstAddr)) {
+ if (in6_is_addr_multicast(ip6_dst_addr)) {
expert_add_info(pinfo, pi, &ei_ipv6_dst_addr_not_multicast);
}
@@ -978,7 +976,7 @@ dissect_routing6(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* data
for (idx = 1; rpl_addr_count > 1; idx++) {
proto_tree_add_item(rthdr_tree, hf_ipv6_routing_rpl_addr, tvb, offset, (16-cmprI), ENC_NA);
/* Display Full Address */
- memcpy((guint8 *)addr, (guint8 *)&dstAddr, sizeof(dstAddr));
+ memcpy(addr, ip6_dst_addr, IPv6_ADDR_SIZE);
tvb_memcpy(tvb, (guint8 *)addr + cmprI, offset, (16-cmprI));
ti = _proto_tree_add_ipv6_vector_address(rthdr_tree, hf_ipv6_routing_rpl_fulladdr, tvb,
offset, 16-cmprI, addr, idx);
@@ -987,10 +985,10 @@ dissect_routing6(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* data
rpl_addr_count--;
/* IPv6 Source and Destination addresses of the encapsulating datagram (MUST) not appear in the SRH*/
- if (memcmp(addr->bytes, srcAddr.bytes, 16) == 0) {
+ if (memcmp(addr, ip6_src_addr, IPv6_ADDR_SIZE) == 0) {
expert_add_info(pinfo, ti, &ei_ipv6_src_route_list_src_addr);
}
- if (memcmp(addr->bytes, dstAddr.bytes, 16) == 0) {
+ if (memcmp(addr, ip6_dst_addr, IPv6_ADDR_SIZE) == 0) {
expert_add_info(pinfo, ti, &ei_ipv6_src_route_list_dst_addr);
}
@@ -1009,10 +1007,10 @@ dissect_routing6(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* data
tempOffset = offset; /* Has already been moved */
while(tempSegments > 1) {
struct e_in6_addr tempAddr;
- memcpy((guint8 *)&tempAddr, (guint8 *)&dstAddr, sizeof(dstAddr));
+ memcpy(&tempAddr, ip6_dst_addr, IPv6_ADDR_SIZE);
tvb_memcpy(tvb, (guint8 *)&tempAddr + cmprI, tempOffset, (16-cmprI));
/* Compare the addresses */
- if (memcmp(addr->bytes, tempAddr.bytes, 16) == 0) {
+ if (memcmp(addr, &tempAddr, IPv6_ADDR_SIZE) == 0) {
/* Found a later address that is the same */
expert_add_info(pinfo, ti, &ei_ipv6_src_route_list_mult_inst_same_addr);
break;
@@ -1023,10 +1021,10 @@ dissect_routing6(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* data
if (tempSegments == 1) {
struct e_in6_addr tempAddr;
- memcpy((guint8 *)&tempAddr, (guint8 *)&dstAddr, sizeof(dstAddr));
+ memcpy(&tempAddr, ip6_dst_addr, IPv6_ADDR_SIZE);
tvb_memcpy(tvb, (guint8 *)&tempAddr + cmprE, tempOffset, (16-cmprE));
/* Compare the addresses */
- if (memcmp(addr->bytes, tempAddr.bytes, 16) == 0) {
+ if (memcmp(addr, &tempAddr, IPv6_ADDR_SIZE) == 0) {
/* Found a later address that is the same */
expert_add_info(pinfo, ti, &ei_ipv6_src_route_list_mult_inst_same_addr);
}
@@ -1038,7 +1036,7 @@ dissect_routing6(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* data
if (rpl_addr_count == 1) {
proto_tree_add_item(rthdr_tree, hf_ipv6_routing_rpl_addr, tvb, offset, (16-cmprE), ENC_NA);
/* Display Full Address */
- memcpy((guint8 *)addr, (guint8 *)&dstAddr, sizeof(dstAddr));
+ memcpy(addr, ip6_dst_addr, IPv6_ADDR_SIZE);
tvb_memcpy(tvb, (guint8 *)addr + cmprE, offset, (16-cmprE));
ti = _proto_tree_add_ipv6_vector_address(rthdr_tree, hf_ipv6_routing_rpl_fulladdr, tvb,
offset, 16-cmprE, addr, idx);
@@ -1046,10 +1044,10 @@ dissect_routing6(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* data
/* offset += (16-cmprE); */
/* IPv6 Source and Destination addresses of the encapsulating datagram (MUST) not appear in the SRH*/
- if (memcmp(addr->bytes, srcAddr.bytes, 16) == 0) {
+ if (memcmp(addr, ip6_src_addr, IPv6_ADDR_SIZE) == 0) {
expert_add_info(pinfo, ti, &ei_ipv6_src_route_list_src_addr);
}
- if (memcmp(addr->bytes, dstAddr.bytes, 16) == 0) {
+ if (memcmp(addr, ip6_dst_addr, IPv6_ADDR_SIZE) == 0) {
expert_add_info(pinfo, ti, &ei_ipv6_src_route_list_dst_addr);
}