diff options
author | Toni <matzeton@googlemail.com> | 2021-07-05 09:41:35 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-07-05 09:41:35 +0200 |
commit | 21b2cce7151311931130a6513a8f26fdb4fb3fca (patch) | |
tree | 6fdaf9bbf971b9dd8434a6dd023cb5405080257d /src | |
parent | ced6fca184a4549333c2d582e53419f66cd99ec1 (diff) |
Improved Z39.50 detection. (#1225)
Signed-off-by: Toni Uhlig <matzeton@googlemail.com>
Diffstat (limited to 'src')
-rw-r--r-- | src/lib/protocols/z3950.c | 13 |
1 files changed, 4 insertions, 9 deletions
diff --git a/src/lib/protocols/z3950.c b/src/lib/protocols/z3950.c index b267c776d..8a6620ed0 100644 --- a/src/lib/protocols/z3950.c +++ b/src/lib/protocols/z3950.c @@ -62,15 +62,10 @@ static int z3950_parse_sequences(struct ndpi_packet_struct const * const packet, u_int8_t seq_length; payload = &packet->payload[payload_offset]; - if (payload[0] == 0x9F) + if ((payload[0] & 0x1F) == 0x1F) { - if (payload_offset + 3 >= packet->payload_packet_len) - { - return -1; - } - payload_offset++; - payload = &packet->payload[payload_offset]; - seq_type = payload[0]; + /* We ignore decoding of complex sequences for now. */ + return cur_sequences; } else { seq_type = payload[0] & 0x1F; } @@ -103,7 +98,7 @@ static void ndpi_search_z3950(struct ndpi_detection_module_struct *ndpi_struct, struct ndpi_flow_struct *flow) { struct ndpi_packet_struct * packet = &flow->packet; - int const minimum_expected_sequences = 7; + int const minimum_expected_sequences = 6; NDPI_LOG_DBG(ndpi_struct, "search z39.50\n"); |