|
@@ -379,7 +379,9 @@ int batadv_recv_icmp_packet(struct sk_buff *skb,
|
|
|
icmp_packet = (struct batadv_icmp_packet_rr *)skb->data;
|
|
|
|
|
|
/* add record route information if not full */
|
|
|
- if ((hdr_size == sizeof(struct batadv_icmp_packet_rr)) &&
|
|
|
+ if ((icmp_packet->msg_type == BATADV_ECHO_REPLY ||
|
|
|
+ icmp_packet->msg_type == BATADV_ECHO_REQUEST) &&
|
|
|
+ (hdr_size == sizeof(struct batadv_icmp_packet_rr)) &&
|
|
|
(icmp_packet->rr_cur < BATADV_RR_LEN)) {
|
|
|
memcpy(&(icmp_packet->rr[icmp_packet->rr_cur]),
|
|
|
ethhdr->h_dest, ETH_ALEN);
|