From d1b7eb2de1d79acfcae1e591cf66d95be6b5f5c7 Mon Sep 17 00:00:00 2001 From: Quipyowert2 <38995150+Quipyowert2@users.noreply.github.com> Date: Thu, 20 Feb 2020 16:30:36 -0800 Subject: [PATCH] Codechange: Limit field width to avoid sscanf crash --- src/network/network.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/network/network.cpp b/src/network/network.cpp index e8c99c89bb..0e3d086301 100644 --- a/src/network/network.cpp +++ b/src/network/network.cpp @@ -917,7 +917,8 @@ void NetworkGameLoop() if (*p == ' ') p++; cp = CallocT(1); int company; - int ret = sscanf(p, "%x; %x; %x; %x; %x; %x; %x; \"%[^\"]\"", &next_date, &next_date_fract, &company, &cp->tile, &cp->p1, &cp->p2, &cp->cmd, cp->text); + assert_compile(sizeof(cp->text) == 128); + int ret = sscanf(p, "%x; %x; %x; %x; %x; %x; %x; \"%127[^\"]\"", &next_date, &next_date_fract, &company, &cp->tile, &cp->p1, &cp->p2, &cp->cmd, cp->text); /* There are 8 pieces of data to read, however the last is a * string that might or might not exist. Ignore it if that * string misses because in 99% of the time it's not used. */