diff options
author | Luca <deri@ntop.org> | 2020-02-10 15:26:21 +0100 |
---|---|---|
committer | Luca <deri@ntop.org> | 2020-02-10 15:26:21 +0100 |
commit | 97fb50e837da46bac7bedeeb170cace6dd3a912c (patch) | |
tree | 6904326a6e0333b64220e15f1862573299a78d0f /src | |
parent | af6c86de2838a556997451ffd8e5c761b8b634f2 (diff) | |
parent | a3da5604a38a1b2b240a9d692dade086148eb2e4 (diff) |
Merge branch 'dev' of https://github.com/ntop/nDPI into dev
Diffstat (limited to 'src')
-rw-r--r-- | src/lib/protocols/kerberos.c | 17 |
1 files changed, 13 insertions, 4 deletions
diff --git a/src/lib/protocols/kerberos.c b/src/lib/protocols/kerberos.c index ca5f73c5c..2bacbf510 100644 --- a/src/lib/protocols/kerberos.c +++ b/src/lib/protocols/kerberos.c @@ -105,13 +105,22 @@ void ndpi_search_kerberos(struct ndpi_detection_module_struct *ndpi_struct, */ if(kerberos_len > expected_len) { if(packet->tcp) { - if(flow->kerberos_buf.pktbuf == NULL) + if(flow->kerberos_buf.pktbuf == NULL) { flow->kerberos_buf.pktbuf = (char*)ndpi_malloc(kerberos_len+4); + + if(flow->kerberos_buf.pktbuf != NULL) { + flow->kerberos_buf.pktbuf_maxlen = kerberos_len+4; +#ifdef KERBEROS_DEBUG + printf("[Kerberos] Allocated %u bytes\n", flow->kerberos_buf.pktbuf_maxlen); +#endif + } + } if(flow->kerberos_buf.pktbuf != NULL) { - flow->kerberos_buf.pktbuf_maxlen = kerberos_len+4; - memcpy(flow->kerberos_buf.pktbuf, packet->payload, packet->payload_packet_len); - flow->kerberos_buf.pktbuf_currlen = packet->payload_packet_len; + if(packet->payload_packet_len <= flow->kerberos_buf.pktbuf_maxlen) { + memcpy(flow->kerberos_buf.pktbuf, packet->payload, packet->payload_packet_len); + flow->kerberos_buf.pktbuf_currlen = packet->payload_packet_len; + } } } |