aboutsummaryrefslogtreecommitdiff
path: root/src/lib/ndpi_main.c
diff options
context:
space:
mode:
authorNardi Ivan <nardi.ivan@gmail.com>2023-03-01 19:43:03 +0100
committerIvan Nardi <12729895+IvanNardi@users.noreply.github.com>2023-03-01 20:34:56 +0100
commitd65f8cf15f63e4a76d958cb22ae05d762fd3a4b9 (patch)
tree7f6309392c2abb969e6a8b0bacd1a4288e63aebb /src/lib/ndpi_main.c
parent9eb9664516aafb821097f049717c70e576ac18a6 (diff)
Keep master protocol in `ndpi_reconcile_protocols`
As a side effect of this change, the following memory leak has been fixed. ``` ==55523==ERROR: LeakSanitizer: detected memory leaks Direct leak of 2 byte(s) in 1 object(s) allocated from: #0 0x55657d01b7be in malloc (/home/ivan/svnrepos/nDPI/fuzz/fuzz_ndpi_reader_alloc_fail+0x5b27be) (BuildId: 9dfa7bd9081421417b8b1c2e8b44633a9bfcfe52) #1 0x55657d169182 in ndpi_malloc /home/ivan/svnrepos/nDPI/src/lib/ndpi_main.c:243:25 #2 0x55657d1694c8 in ndpi_strdup /home/ivan/svnrepos/nDPI/src/lib/ndpi_main.c:310:13 #3 0x55657d25ddc7 in processClientServerHello /home/ivan/svnrepos/nDPI/src/lib/protocols/tls.c:2308:46 #4 0x55657d2701b9 in processTLSBlock /home/ivan/svnrepos/nDPI/src/lib/protocols/tls.c:895:5 #5 0x55657d26a408 in ndpi_search_tls_udp /home/ivan/svnrepos/nDPI/src/lib/protocols/tls.c:1223:11 ``` Found by oss-fuzz See: https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=56466
Diffstat (limited to 'src/lib/ndpi_main.c')
-rw-r--r--src/lib/ndpi_main.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/src/lib/ndpi_main.c b/src/lib/ndpi_main.c
index 13df39171..42d2a8a96 100644
--- a/src/lib/ndpi_main.c
+++ b/src/lib/ndpi_main.c
@@ -5948,7 +5948,7 @@ static void ndpi_reconcile_protocols(struct ndpi_detection_module_struct *ndpi_s
case NDPI_PROTOCOL_MS_OUTLOOK:
case NDPI_PROTOCOL_SKYPE_TEAMS:
ndpi_int_change_protocol(ndpi_str, flow,
- flow->guessed_protocol_id_by_ip, NDPI_PROTOCOL_UNKNOWN,
+ flow->guessed_protocol_id_by_ip, flow->detected_protocol_stack[1],
NDPI_CONFIDENCE_DPI_PARTIAL);
break;
}
@@ -5959,7 +5959,7 @@ static void ndpi_reconcile_protocols(struct ndpi_detection_module_struct *ndpi_s
switch(flow->guessed_protocol_id_by_ip) {
case NDPI_PROTOCOL_GOOGLE_CLOUD:
ndpi_int_change_protocol(ndpi_str, flow,
- flow->guessed_protocol_id_by_ip, NDPI_PROTOCOL_UNKNOWN,
+ flow->guessed_protocol_id_by_ip, flow->detected_protocol_stack[1],
NDPI_CONFIDENCE_DPI_PARTIAL);
break;