aboutsummaryrefslogtreecommitdiff
path: root/src/lib
diff options
context:
space:
mode:
authorLudovico Cavedon <ludovico.cavedon@gmail.com>2019-01-15 23:10:48 -0800
committerLudovico Cavedon <ludovico.cavedon@gmail.com>2019-01-15 23:49:26 -0800
commit0cb4bae27503d2fa6e9e2efd1944049338d7c3c4 (patch)
treec71358445395d2e4945317ff8586377a9a21772e /src/lib
parent2ade0be365429a404d63f8ee20f1b59650cde710 (diff)
QUIC: convert little endian offsets to host endianness
Offset in the QUIC protocol are little endian. Reading them as uint32_t works on little endian architectures, but breaks on big endian ones. This change applies the proper conversion and fixes running the http_ipv6 and quic tests on big endian architectures.
Diffstat (limited to 'src/lib')
-rw-r--r--src/lib/protocols/quic.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/src/lib/protocols/quic.c b/src/lib/protocols/quic.c
index e28db634a..322eb9be7 100644
--- a/src/lib/protocols/quic.c
+++ b/src/lib/protocols/quic.c
@@ -96,8 +96,8 @@ void ndpi_search_quic(struct ndpi_detection_module_struct *ndpi_struct,
&& (packet->payload[i+1] == 'N')
&& (packet->payload[i+2] == 'I')
&& (packet->payload[i+3] == 0)) {
- u_int32_t offset = *((u_int32_t*)&packet->payload[i+4]);
- u_int32_t prev_offset = *((u_int32_t*)&packet->payload[i-4]);
+ u_int32_t offset = le32toh(*((u_int32_t*)&packet->payload[i+4]));
+ u_int32_t prev_offset = le32toh(*((u_int32_t*)&packet->payload[i-4]));
int len = offset-prev_offset;
int sni_offset = i+prev_offset+1;