From 43c70cbd6ebe7d5942582afda743376a47c38803 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 5b9963426..371d4a70d 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 598dc98ee..7ce53bfed 100644 --- a/src/k_terrain.c +++ b/src/k_terrain.c @@ -1668,7 +1668,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; @@ -1709,7 +1709,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; @@ -1750,7 +1750,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; @@ -1791,7 +1791,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; @@ -1831,8 +1831,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) { @@ -1843,7 +1843,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; @@ -1872,7 +1872,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); @@ -1917,7 +1917,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; @@ -1956,7 +1956,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;