From 897fe3b1b8000b740fe6285201bdb00eb2e9ae16 Mon Sep 17 00:00:00 2001 From: JugadorXEI Date: Fri, 31 May 2024 17:03:51 +0200 Subject: [PATCH] Fix off-by-one error in BRIGHT and TERRAIN lump parsing --- src/k_brightmap.c | 4 ++-- src/k_terrain.c | 20 ++++++++++---------- 2 files changed, 12 insertions(+), 12 deletions(-) diff --git a/src/k_brightmap.c b/src/k_brightmap.c index a13ea65af..25e9e47c9 100644 --- a/src/k_brightmap.c +++ b/src/k_brightmap.c @@ -112,7 +112,7 @@ static boolean K_BRIGHTLumpParser(char *data, size_t size) tkn = M_GetToken(NULL); pos = M_GetTokenPos(); - if (tkn && pos < size) + if (tkn && pos <= size) { brightmapStorage_t *bms = K_GetBrightmapStorageByTextureName(tkn); @@ -127,7 +127,7 @@ static boolean K_BRIGHTLumpParser(char *data, size_t size) tkn = M_GetToken(NULL); pos = M_GetTokenPos(); - if (tkn && pos < size) + if (tkn && pos <= size) { strncpy(bms->brightmapName, tkn, 8); bms->brightmapHash = quickncasehash(tkn, 8); diff --git a/src/k_terrain.c b/src/k_terrain.c index b493c903c..189c17dc1 100644 --- a/src/k_terrain.c +++ b/src/k_terrain.c @@ -1823,7 +1823,7 @@ static boolean K_TERRAINLumpParser(char *data, size_t size) tkn = M_GetToken(NULL); pos = M_GetTokenPos(); - if (tkn && pos < size) + if (tkn && pos <= size) { t_splash_t *s = NULL; @@ -1864,7 +1864,7 @@ static boolean K_TERRAINLumpParser(char *data, size_t size) tkn = M_GetToken(NULL); pos = M_GetTokenPos(); - if (tkn && pos < size) + if (tkn && pos <= size) { t_footstep_t *fs = NULL; @@ -1905,7 +1905,7 @@ static boolean K_TERRAINLumpParser(char *data, size_t size) tkn = M_GetToken(NULL); pos = M_GetTokenPos(); - if (tkn && pos < size) + if (tkn && pos <= size) { t_overlay_t *o = NULL; @@ -1946,7 +1946,7 @@ static boolean K_TERRAINLumpParser(char *data, size_t size) tkn = M_GetToken(NULL); pos = M_GetTokenPos(); - if (tkn && pos < size) + if (tkn && pos <= size) { terrain_t *t = NULL; @@ -1986,8 +1986,8 @@ static boolean K_TERRAINLumpParser(char *data, size_t size) Z_Free(tkn); tkn = M_GetToken(NULL); pos = M_GetTokenPos(); - - if (tkn && pos < size) + + if (tkn && pos <= size) { if (stricmp(tkn, "optional") == 0) { @@ -1998,7 +1998,7 @@ static boolean K_TERRAINLumpParser(char *data, size_t size) pos = M_GetTokenPos(); } - if (tkn && pos < size) + if (tkn && pos <= size) { t_floor_t *f = NULL; @@ -2027,7 +2027,7 @@ static boolean K_TERRAINLumpParser(char *data, size_t size) tkn = M_GetToken(NULL); pos = M_GetTokenPos(); - if (tkn && pos < size) + if (tkn && pos <= size) { terrain_t *t = K_GetTerrainByName(tkn); @@ -2072,7 +2072,7 @@ static boolean K_TERRAINLumpParser(char *data, size_t size) tkn = M_GetToken(NULL); pos = M_GetTokenPos(); - if (tkn && pos < size) + if (tkn && pos <= size) { terrain_t *t = NULL; @@ -2111,7 +2111,7 @@ static boolean K_TERRAINLumpParser(char *data, size_t size) tkn = M_GetToken(NULL); pos = M_GetTokenPos(); - if (tkn && pos < size) + if (tkn && pos <= size) { t_footstep_t *fs = NULL;