From 375c06400ca15b02bc913eddbbfa8e1bf01e2a7c Mon Sep 17 00:00:00 2001 From: Alibek Omarov Date: Fri, 17 Feb 2023 22:48:56 +0300 Subject: [PATCH] engine: server: avoid unaligned access in pfnMessageEnd --- engine/server/sv_game.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/engine/server/sv_game.c b/engine/server/sv_game.c index 9473d79e..0f3f85c7 100644 --- a/engine/server/sv_game.c +++ b/engine/server/sv_game.c @@ -2642,6 +2642,7 @@ void GAME_EXPORT pfnMessageEnd( void ) { const char *name = "Unknown"; float *org = NULL; + word realsize; if( svgame.msg_name ) name = svgame.msg_name; if( !svgame.msg_started ) Host_Error( "MessageEnd: called with no active message\n" ); @@ -2673,7 +2674,8 @@ void GAME_EXPORT pfnMessageEnd( void ) return; } - *(word *)&sv.multicast.pData[svgame.msg_size_index] = svgame.msg_realsize; + realsize = svgame.msg_realsize; + memcpy( &sv.multicast.pData[svgame.msg_size_index], &realsize, sizeof( realsize )); } } else if( svgame.msg[svgame.msg_index].size != -1 ) @@ -2705,7 +2707,8 @@ void GAME_EXPORT pfnMessageEnd( void ) return; } - *(word *)&sv.multicast.pData[svgame.msg_size_index] = svgame.msg_realsize; + realsize = svgame.msg_realsize; + memcpy( &sv.multicast.pData[svgame.msg_size_index], &realsize, sizeof( realsize )); } else {