From 2a2149ad6074265b678de8dc603c8bd344e3b389 Mon Sep 17 00:00:00 2001 From: James R Date: Tue, 30 Jan 2024 16:39:02 -0800 Subject: [PATCH] Use strlcpy for connectedservername/connectedservercontact Fixes these buffers not being null-terminated at max length. --- src/d_clisrv.c | 12 ++++++------ src/menus/transient/level-select.c | 2 +- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/src/d_clisrv.c b/src/d_clisrv.c index 5b656d52f..be990a35c 100644 --- a/src/d_clisrv.c +++ b/src/d_clisrv.c @@ -3411,8 +3411,8 @@ void SV_ResetServer(void) // clear server_context memset(server_context, '-', 8); - strncpy(connectedservername, "\0", MAXSERVERNAME); - strncpy(connectedservercontact, "\0", MAXSERVERCONTACT); + strlcpy(connectedservername, "\0", MAXSERVERNAME); + strlcpy(connectedservercontact, "\0", MAXSERVERCONTACT); CV_RevertNetVars(); @@ -3442,8 +3442,8 @@ static void SV_GenContext(void) server_context[i] = 'a'+(a-26); } - strncpy(connectedservername, cv_servername.string, MAXSERVERNAME); - strncpy(connectedservercontact, cv_server_contact.string, MAXSERVERCONTACT); + strlcpy(connectedservername, cv_servername.string, MAXSERVERNAME); + strlcpy(connectedservercontact, cv_server_contact.string, MAXSERVERCONTACT); } #endif // TESTERS @@ -4578,8 +4578,8 @@ static void HandlePacketFromAwayNode(SINT8 node) memcpy(server_context, netbuffer->u.servercfg.server_context, 8); - strncpy(connectedservername, netbuffer->u.servercfg.server_name, MAXSERVERNAME); - strncpy(connectedservercontact, netbuffer->u.servercfg.server_contact, MAXSERVERCONTACT); + strlcpy(connectedservername, netbuffer->u.servercfg.server_name, MAXSERVERNAME); + strlcpy(connectedservercontact, netbuffer->u.servercfg.server_contact, MAXSERVERCONTACT); } #ifdef HAVE_DISCORDRPC diff --git a/src/menus/transient/level-select.c b/src/menus/transient/level-select.c index 34abf58a5..1f5ad7505 100644 --- a/src/menus/transient/level-select.c +++ b/src/menus/transient/level-select.c @@ -713,7 +713,7 @@ void M_LevelSelected(INT16 add, boolean menuupdate) netgame = false; multiplayer = true; - strncpy(connectedservername, cv_servername.string, MAXSERVERNAME); + strlcpy(connectedservername, cv_servername.string, MAXSERVERNAME); // Still need to reset devmode cht_debug = 0;