- Fix broken implementation of WinDivertHelperParseIPv6Address().
- Fix IPv6 address word/byte ordering between DLL and SYS.
This commit is contained in:
+12
-12
@@ -3049,23 +3049,23 @@ static BOOL windivert_filter(PNET_BUFFER buffer, UINT32 if_idx,
|
||||
break;
|
||||
case WINDIVERT_FILTER_FIELD_IPV6_SRCADDR:
|
||||
field[0] =
|
||||
(UINT32)RtlUlongByteSwap(ipv6_header->SrcAddr[3]);
|
||||
field[1] =
|
||||
(UINT32)RtlUlongByteSwap(ipv6_header->SrcAddr[2]);
|
||||
field[2] =
|
||||
(UINT32)RtlUlongByteSwap(ipv6_header->SrcAddr[1]);
|
||||
field[3] =
|
||||
(UINT32)RtlUlongByteSwap(ipv6_header->SrcAddr[0]);
|
||||
field[1] =
|
||||
(UINT32)RtlUlongByteSwap(ipv6_header->SrcAddr[1]);
|
||||
field[2] =
|
||||
(UINT32)RtlUlongByteSwap(ipv6_header->SrcAddr[2]);
|
||||
field[3] =
|
||||
(UINT32)RtlUlongByteSwap(ipv6_header->SrcAddr[3]);
|
||||
break;
|
||||
case WINDIVERT_FILTER_FIELD_IPV6_DSTADDR:
|
||||
field[0] =
|
||||
(UINT32)RtlUlongByteSwap(ipv6_header->DstAddr[3]);
|
||||
field[1] =
|
||||
(UINT32)RtlUlongByteSwap(ipv6_header->DstAddr[2]);
|
||||
field[2] =
|
||||
(UINT32)RtlUlongByteSwap(ipv6_header->DstAddr[1]);
|
||||
field[3] =
|
||||
(UINT32)RtlUlongByteSwap(ipv6_header->DstAddr[0]);
|
||||
field[1] =
|
||||
(UINT32)RtlUlongByteSwap(ipv6_header->DstAddr[1]);
|
||||
field[2] =
|
||||
(UINT32)RtlUlongByteSwap(ipv6_header->DstAddr[2]);
|
||||
field[3] =
|
||||
(UINT32)RtlUlongByteSwap(ipv6_header->DstAddr[3]);
|
||||
break;
|
||||
case WINDIVERT_FILTER_FIELD_ICMP_TYPE:
|
||||
field[0] = (UINT32)icmp_header->Type;
|
||||
|
||||
Reference in New Issue
Block a user