Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
openSUSE:Factory
ndpi
0003-Firs-crash-on-ARM-during-steam-protocol-di...
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File 0003-Firs-crash-on-ARM-during-steam-protocol-dissection.patch of Package ndpi
From 817c00b65ab4d0bf78927e494227ac5308417f91 Mon Sep 17 00:00:00 2001 From: Luca Deri <deri@ntop.org> Date: Wed, 18 Aug 2021 11:33:33 +0200 Subject: [PATCH 3/3] Firs crash on ARM during steam protocol dissection --- src/lib/protocols/steam.c | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) diff --git a/src/lib/protocols/steam.c b/src/lib/protocols/steam.c index 8cd3ec41..53bbfc6a 100644 --- a/src/lib/protocols/steam.c +++ b/src/lib/protocols/steam.c @@ -114,14 +114,19 @@ static void ndpi_check_steam_udp1(struct ndpi_detection_module_struct *ndpi_stru } /* Check for Steam Datagram Relay (SDR) packets. */ - if (payload_len > 8 && - ndpi_ntohll(get_u_int64_t(packet->payload, 0)) == 0x0101736470696e67 /* "\x01\x01sdping" */) - { - NDPI_LOG_INFO(ndpi_struct, "found STEAM (Steam Datagram Relay)\n"); - ndpi_int_steam_add_connection(ndpi_struct, flow); - return; - } + if (payload_len > 8) { + u_int64_t n; + /* Necessary as simple cast crashes on ARM */ + memcpy(&n, packet->payload, sizeof(u_int64_t)); + + if(ndpi_ntohll(n) == 0x0101736470696e67 /* "\x01\x01sdping" */) { + NDPI_LOG_INFO(ndpi_struct, "found STEAM (Steam Datagram Relay)\n"); + ndpi_int_steam_add_connection(ndpi_struct, flow); + return; + } + } + /* Check if we so far detected the protocol in the request or not. */ if (flow->steam_stage1 == 0) { NDPI_LOG_DBG2(ndpi_struct, "STEAM stage 0: \n"); -- 2.32.0
Locations
Projects
Search
Status Monitor
Help
OpenBuildService.org
Documentation
API Documentation
Code of Conduct
Contact
Support
@OBShq
Terms
openSUSE Build Service is sponsored by
The Open Build Service is an
openSUSE project
.
Sign Up
Log In
Places
Places
All Projects
Status Monitor