File tree Expand file tree Collapse file tree 1 file changed +5
-1
lines changed Expand file tree Collapse file tree 1 file changed +5
-1
lines changed Original file line number Diff line number Diff line change @@ -36,7 +36,11 @@ CNetAddr ConsumeNetAddr(FuzzedDataProvider& fuzzed_data_provider) noexcept
36
36
} else if (network == Network::NET_IPV6) {
37
37
if (fuzzed_data_provider.remaining_bytes () >= 16 ) {
38
38
in6_addr v6_addr = {};
39
- memcpy (v6_addr.s6_addr , fuzzed_data_provider.ConsumeBytes <uint8_t >(16 ).data (), 16 );
39
+ auto addr_bytes = fuzzed_data_provider.ConsumeBytes <uint8_t >(16 );
40
+ if (addr_bytes[0 ] == CJDNS_PREFIX) { // Avoid generating IPv6 addresses that look like CJDNS.
41
+ addr_bytes[0 ] = 0x55 ; // Just an arbitrary number, anything != CJDNS_PREFIX would do.
42
+ }
43
+ memcpy (v6_addr.s6_addr , addr_bytes.data (), 16 );
40
44
net_addr = CNetAddr{v6_addr, fuzzed_data_provider.ConsumeIntegral <uint32_t >()};
41
45
}
42
46
} else if (network == Network::NET_INTERNAL) {
You can’t perform that action at this time.
0 commit comments