mirror of
https://code.semirocket.science/wrapsix
synced 2024-11-24 02:20:37 +02:00
Include propagation of payload size for ICMPv6 too
This commit is contained in:
parent
f7b98c4da1
commit
24c3cdcf6f
@ -351,11 +351,13 @@ int icmp_ipv4(struct s_ethernet *eth4, struct s_ipv4 *ip4, char *payload,
|
||||
* @param eth6 Ethernet header
|
||||
* @param ip6 IPv6 header
|
||||
* @param payload ICMPv6 data
|
||||
* @param payload_size Size of the data payload
|
||||
*
|
||||
* @return 0 for success
|
||||
* @return 1 for failure
|
||||
*/
|
||||
int icmp_ipv6(struct s_ethernet *eth6, struct s_ipv6 *ip6, char *payload)
|
||||
int icmp_ipv6(struct s_ethernet *eth6, struct s_ipv6 *ip6, char *payload,
|
||||
unsigned short payload_size)
|
||||
{
|
||||
struct s_icmp *icmp;
|
||||
unsigned int *icmp_extra;
|
||||
@ -364,7 +366,6 @@ int icmp_ipv6(struct s_ethernet *eth6, struct s_ipv6 *ip6, char *payload)
|
||||
char *icmp_data;
|
||||
struct s_nat *connection;
|
||||
unsigned short orig_checksum;
|
||||
unsigned short payload_size;
|
||||
char packet[PACKET_BUFFER - sizeof(struct s_ethernet)];
|
||||
unsigned short new_len = sizeof(struct s_ipv4);
|
||||
|
||||
@ -372,8 +373,6 @@ int icmp_ipv6(struct s_ethernet *eth6, struct s_ipv6 *ip6, char *payload)
|
||||
struct s_ipv4 *ip4;
|
||||
struct s_ipv6 *eip6;
|
||||
|
||||
payload_size = ntohs(ip6->len);
|
||||
|
||||
/* sanity check */
|
||||
if (payload_size < sizeof(struct s_icmp) + 4) {
|
||||
log_debug("Too short ICMPv6 packet");
|
||||
|
@ -79,7 +79,8 @@ struct s_icmp_ndp_na {
|
||||
|
||||
int icmp_ipv4(struct s_ethernet *eth, struct s_ipv4 *ip4, char *payload,
|
||||
unsigned short payload_size);
|
||||
int icmp_ipv6(struct s_ethernet *eth, struct s_ipv6 *ip6, char *payload);
|
||||
int icmp_ipv6(struct s_ethernet *eth6, struct s_ipv6 *ip6, char *payload,
|
||||
unsigned short payload_size);
|
||||
int icmp_ndp(struct s_ethernet *ethq, struct s_ipv6 *ipq,
|
||||
struct s_icmp_ndp_ns *ndp_ns);
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user