aboutsummaryrefslogtreecommitdiff
path: root/src/lib/protocols/postgres.c
diff options
context:
space:
mode:
authorLuca Deri <lucaderi@users.noreply.github.com>2020-04-15 18:05:16 +0200
committerGitHub <noreply@github.com>2020-04-15 18:05:16 +0200
commitf4c24663fc651904e325aa944bf5a30def726c6a (patch)
treeb890107aba3e3b0f2f27694f3a808ce9cc0ebc8b /src/lib/protocols/postgres.c
parent9f2dabbda469ca3853f3bb7191e74b3f4d47b48c (diff)
parent4f370fe7c49cb38125cff2a1411261011e433c94 (diff)
Merge pull request #874 from catenacyber/fuzz6fix
Fuzz6fix
Diffstat (limited to 'src/lib/protocols/postgres.c')
-rw-r--r--src/lib/protocols/postgres.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/src/lib/protocols/postgres.c b/src/lib/protocols/postgres.c
index b6fa74473..a51fabaab 100644
--- a/src/lib/protocols/postgres.c
+++ b/src/lib/protocols/postgres.c
@@ -97,7 +97,7 @@ void ndpi_search_postgres_tcp(struct ndpi_detection_module_struct
return;
}
size = (u_int16_t)ntohl(get_u_int32_t(packet->payload, 1)) + 1;
- if (packet->payload[size - 1] == 'S') {
+ if (size > 0 && size - 1 < packet->payload_packet_len && packet->payload[size - 1] == 'S') {
if ((size + get_u_int32_t(packet->payload, (size + 1))) == packet->payload_packet_len) {
NDPI_LOG_INFO(ndpi_struct, "found postgres asymmetrically\n");
ndpi_int_postgres_add_connection(ndpi_struct, flow);
@@ -105,7 +105,7 @@ void ndpi_search_postgres_tcp(struct ndpi_detection_module_struct
}
}
size += get_u_int32_t(packet->payload, (size + 1)) + 1;
- if (packet->payload[size - 1] == 'S') {
+ if (size > 0 && size - 1 < packet->payload_packet_len && packet->payload[size - 1] == 'S') {
NDPI_LOG_INFO(ndpi_struct, "found postgres asymmetrically\n");
ndpi_int_postgres_add_connection(ndpi_struct, flow);
return;