aboutsummaryrefslogtreecommitdiff
path: root/example
diff options
context:
space:
mode:
Diffstat (limited to 'example')
-rw-r--r--example/ndpiReader.c14
-rw-r--r--example/reader_util.c5
2 files changed, 11 insertions, 8 deletions
diff --git a/example/ndpiReader.c b/example/ndpiReader.c
index a92ee7935..a5481d342 100644
--- a/example/ndpiReader.c
+++ b/example/ndpiReader.c
@@ -1703,7 +1703,7 @@ static void deleteScanners(struct single_flow_info *scanners) {
HASH_ITER(hh, scanners, s, tmp) {
HASH_ITER(hh, s->ports, p, tmp2) {
- HASH_DEL(s->ports, p);
+ if(s->ports) HASH_DEL(s->ports, p);
free(p);
}
HASH_DEL(scanners, s);
@@ -2600,11 +2600,13 @@ static void printFlowsStats() {
//freeing the hash table
HASH_ITER(hh, ja3ByHostsHashT, ja3ByHost_element, tmp) {
HASH_ITER(hh, ja3ByHost_element->host_client_info_hasht, info_of_element, tmp2) {
- HASH_DEL(ja3ByHost_element->host_client_info_hasht, info_of_element);
+ if(ja3ByHost_element->host_client_info_hasht)
+ HASH_DEL(ja3ByHost_element->host_client_info_hasht, info_of_element);
free(info_of_element);
}
HASH_ITER(hh, ja3ByHost_element->host_server_info_hasht, info_of_element, tmp2) {
- HASH_DEL(ja3ByHost_element->host_server_info_hasht, info_of_element);
+ if(ja3ByHost_element->host_server_info_hasht)
+ HASH_DEL(ja3ByHost_element->host_server_info_hasht, info_of_element);
free(info_of_element);
}
HASH_DEL(ja3ByHostsHashT, ja3ByHost_element);
@@ -2613,7 +2615,8 @@ static void printFlowsStats() {
HASH_ITER(hh, hostByJA3C_ht, hostByJA3Element, tmp3) {
HASH_ITER(hh, hostByJA3C_ht->ipToDNS_ht, innerHashEl, tmp4) {
- HASH_DEL(hostByJA3Element->ipToDNS_ht, innerHashEl);
+ if(hostByJA3Element->ipToDNS_ht)
+ HASH_DEL(hostByJA3Element->ipToDNS_ht, innerHashEl);
free(innerHashEl);
}
HASH_DEL(hostByJA3C_ht, hostByJA3Element);
@@ -2623,7 +2626,8 @@ static void printFlowsStats() {
hostByJA3Element = NULL;
HASH_ITER(hh, hostByJA3S_ht, hostByJA3Element, tmp3) {
HASH_ITER(hh, hostByJA3S_ht->ipToDNS_ht, innerHashEl, tmp4) {
- HASH_DEL(hostByJA3Element->ipToDNS_ht, innerHashEl);
+ if(hostByJA3Element->ipToDNS_ht)
+ HASH_DEL(hostByJA3Element->ipToDNS_ht, innerHashEl);
free(innerHashEl);
}
HASH_DEL(hostByJA3S_ht, hostByJA3Element);
diff --git a/example/reader_util.c b/example/reader_util.c
index e7ec81d3c..6cb150d87 100644
--- a/example/reader_util.c
+++ b/example/reader_util.c
@@ -123,7 +123,6 @@ void ndpi_analyze_payload(struct ndpi_flow_info *flow,
u_int16_t payload_len,
u_int32_t packet_id) {
struct payload_stats *ret;
- u_int i;
struct flow_id_stats *f;
struct packet_id_stats *p;
@@ -966,7 +965,7 @@ void process_ndpi_collected_info(struct ndpi_workflow * workflow, struct ndpi_fl
}
}
/* HTTP */
- else if(flow->detected_protocol.master_protocol == NDPI_PROTOCOL_HTTP) {
+ else if(flow->detected_protocol.app_protocol == NDPI_PROTOCOL_HTTP) {
if(flow->ndpi_flow->http.url != NULL) {
snprintf(flow->http.url, sizeof(flow->http.url), "%s", flow->ndpi_flow->http.url);
flow->http.response_status_code = flow->ndpi_flow->http.response_status_code;
@@ -1428,7 +1427,7 @@ struct ndpi_proto ndpi_workflow_process_packet(struct ndpi_workflow * workflow,
ip_offset += 4;
vlan_packet = 1;
// double tagging for 802.1Q
- if(type == 0x8100) {
+ while((type == 0x8100) && (ip_offset < header->caplen)) {
vlan_id = ((packet[ip_offset] << 8) + packet[ip_offset+1]) & 0xFFF;
type = (packet[ip_offset+2] << 8) + packet[ip_offset+3];
ip_offset += 4;