diff options
author | Ivan Nardi <12729895+IvanNardi@users.noreply.github.com> | 2021-03-31 14:13:07 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-03-31 14:13:07 +0200 |
commit | 1290c40968d757eb429b99ec24e96aca43da7026 (patch) | |
tree | f39394748ae0f0fb13a67e0df07a96e0c2e69d5f /src | |
parent | 48726301e1a2859e277b2ed5b76338cdf4468b22 (diff) |
Mining: lru cache is ipv4 only (for the time being) (#1159)
Fix memory error with ipv6 traffic
Diffstat (limited to 'src')
-rw-r--r-- | src/lib/protocols/mining.c | 15 |
1 files changed, 10 insertions, 5 deletions
diff --git a/src/lib/protocols/mining.c b/src/lib/protocols/mining.c index 16b82eb7f..e336bc8de 100644 --- a/src/lib/protocols/mining.c +++ b/src/lib/protocols/mining.c @@ -61,7 +61,8 @@ void ndpi_search_mining_udp(struct ndpi_detection_module_struct *ndpi_struct, else { snprintf(flow->flow_extra_info, sizeof(flow->flow_extra_info), "%s", "ETH"); ndpi_set_detected_protocol(ndpi_struct, flow, NDPI_PROTOCOL_MINING, NDPI_PROTOCOL_UNKNOWN); - cacheMiningHostTwins(ndpi_struct, flow->packet.iph->saddr + flow->packet.iph->daddr); + if(packet->iph) /* TODO: ipv6 */ + cacheMiningHostTwins(ndpi_struct, flow->packet.iph->saddr + flow->packet.iph->daddr); return; } } @@ -96,7 +97,8 @@ void ndpi_search_mining_tcp(struct ndpi_detection_module_struct *ndpi_struct, if((*to_match == magic) || (*to_match == magic1)) { snprintf(flow->flow_extra_info, sizeof(flow->flow_extra_info), "%s", "ETH"); ndpi_set_detected_protocol(ndpi_struct, flow, NDPI_PROTOCOL_MINING, NDPI_PROTOCOL_UNKNOWN); - cacheMiningHostTwins(ndpi_struct, flow->packet.iph->saddr + flow->packet.iph->daddr); + if(packet->iph) /* TODO: ipv6 */ + cacheMiningHostTwins(ndpi_struct, flow->packet.iph->saddr + flow->packet.iph->daddr); return; } } @@ -108,7 +110,8 @@ void ndpi_search_mining_tcp(struct ndpi_detection_module_struct *ndpi_struct, if(isEthPort(ntohs(packet->tcp->dest)) /* Ethereum port */) { snprintf(flow->flow_extra_info, sizeof(flow->flow_extra_info), "%s", "ETH"); ndpi_set_detected_protocol(ndpi_struct, flow, NDPI_PROTOCOL_MINING, NDPI_PROTOCOL_UNKNOWN); - cacheMiningHostTwins(ndpi_struct, flow->packet.iph->saddr + flow->packet.iph->daddr); + if(packet->iph) /* TODO: ipv6 */ + cacheMiningHostTwins(ndpi_struct, flow->packet.iph->saddr + flow->packet.iph->daddr); return; } else flow->guessed_protocol_id = NDPI_PROTOCOL_MINING; @@ -128,7 +131,8 @@ void ndpi_search_mining_tcp(struct ndpi_detection_module_struct *ndpi_struct, */ snprintf(flow->flow_extra_info, sizeof(flow->flow_extra_info), "%s", "ETH"); ndpi_set_detected_protocol(ndpi_struct, flow, NDPI_PROTOCOL_MINING, NDPI_PROTOCOL_UNKNOWN); - cacheMiningHostTwins(ndpi_struct, flow->packet.iph->saddr + flow->packet.iph->daddr); + if(packet->iph) /* TODO: ipv6 */ + cacheMiningHostTwins(ndpi_struct, flow->packet.iph->saddr + flow->packet.iph->daddr); return; } else if(ndpi_strnstr((const char *)packet->payload, "{", packet->payload_packet_len) && (ndpi_strnstr((const char *)packet->payload, "\"method\":", packet->payload_packet_len) @@ -151,7 +155,8 @@ void ndpi_search_mining_tcp(struct ndpi_detection_module_struct *ndpi_struct, */ snprintf(flow->flow_extra_info, sizeof(flow->flow_extra_info), "%s", "ZCash/Monero"); ndpi_set_detected_protocol(ndpi_struct, flow, NDPI_PROTOCOL_MINING, NDPI_PROTOCOL_UNKNOWN); - cacheMiningHostTwins(ndpi_struct, flow->packet.iph->saddr + flow->packet.iph->daddr); + if(packet->iph) /* TODO: ipv6 */ + cacheMiningHostTwins(ndpi_struct, flow->packet.iph->saddr + flow->packet.iph->daddr); return; } } |