diff --git a/src/dehacked.c b/src/dehacked.c index e9d029be0b38ba2879291d0f9721f0d748c80850..fbd42dee10088b43e420f936c7910f53510f6398 100644 --- a/src/dehacked.c +++ b/src/dehacked.c @@ -419,7 +419,7 @@ static void readPlayer(MYFILE *f, INT32 num) if (fastcmp(word, "PICNAME")) { SLOTFOUND - strncpy(description[num].picname, word2, 8); + strlcpy(description[num].picname, word2, sizeof(description->picname)); } // new character select else if (fastcmp(word, "DISPLAYNAME")) @@ -3889,9 +3889,7 @@ static void readmaincfg(MYFILE *f) lumpnum_t lumpnum; char newname[9]; - strncpy(newname, word2, 8); - - newname[8] = '\0'; + strlcpy(newname, word2, sizeof(newname)); lumpnum = W_CheckNumForName(newname); diff --git a/src/f_finale.c b/src/f_finale.c index 825f646b04755cbdce6222c2527dc7aed96143df..abef1da6933f5e6691abeaf6a95f4fcd3c216e4d 100644 --- a/src/f_finale.c +++ b/src/f_finale.c @@ -2338,7 +2338,7 @@ void F_InitMenuPresValues(void) activeMenuId = MainDef.menuid; // Set defaults for presentation values - strncpy(curbgname, "TITLESKY", 9); + strlcpy(curbgname, "TITLESKY", sizeof(curbgname)); curfadevalue = 16; curbgcolor = -1; curbgxspeed = (gamestate == GS_TIMEATTACK) ? 0 : titlescrollxspeed; @@ -2348,7 +2348,7 @@ void F_InitMenuPresValues(void) curhidepics = hidetitlepics; curttmode = ttmode; curttscale = ttscale; - strncpy(curttname, ttname, 9); + strlcpy(curttname, ttname, sizeof(curttname)); curttx = ttx; curtty = tty; curttloop = ttloop; diff --git a/src/m_menu.c b/src/m_menu.c index 1069f0f30211747d7a8dc4b4ecfda2847e851815..e510f582a39f603e88c52415162cbb4783e58201 100644 --- a/src/m_menu.c +++ b/src/m_menu.c @@ -2615,7 +2615,7 @@ static boolean MIT_SetCurBackground(UINT32 menutype, INT32 level, INT32 *retval, } else if (menupres[menutype].bgname[0]) { - strncpy(curbgname, menupres[menutype].bgname, 8); + strlcpy(curbgname, menupres[menutype].bgname, sizeof(curbgname)); curbgxspeed = menupres[menutype].titlescrollxspeed != INT32_MAX ? menupres[menutype].titlescrollxspeed : titlescrollxspeed; curbgyspeed = menupres[menutype].titlescrollyspeed != INT32_MAX ? menupres[menutype].titlescrollyspeed : titlescrollyspeed; return true; @@ -2628,7 +2628,7 @@ static boolean MIT_SetCurBackground(UINT32 menutype, INT32 level, INT32 *retval, curbghide = true; else { - strncpy(curbgname, defaultname, 9); + strlcpy(curbgname, defaultname, sizeof(curbgname)); curbgxspeed = (gamestate == GS_TIMEATTACK) ? 0 : titlescrollxspeed; curbgyspeed = (gamestate == GS_TIMEATTACK) ? 0 : titlescrollyspeed; } @@ -2767,7 +2767,7 @@ void M_ChangeMenuMusic(const char *defaultmusname, boolean defaultmuslooping) void M_SetMenuCurBackground(const char *defaultname) { char name[9]; - strncpy(name, defaultname, 8); + strlcpy(name, defaultname, 9); M_IterateMenuTree(MIT_SetCurBackground, &name); } @@ -2820,7 +2820,7 @@ static void M_HandleMenuPresState(menu_t *newMenu) activeMenuId = newMenu ? newMenu->menuid : 0; // Set defaults for presentation values - strncpy(curbgname, "TITLESKY", 9); + strlcpy(curbgname, "TITLESKY", sizeof(curbgname)); curfadevalue = 16; curhidepics = hidetitlepics; curbgcolor = -1; @@ -5785,7 +5785,7 @@ static void M_DrawLevelPlatterMenu(void) { F_SkyScroll(curbgxspeed, curbgyspeed, curbgname); // Draw and animate foreground - if (!strncmp("RECATKBG", curbgname, 8)) + if (!strcmp("RECATKBG", curbgname)) M_DrawRecordAttackForeground(); } @@ -6033,7 +6033,7 @@ static void M_DrawMessageMenu(void) else { F_SkyScroll(curbgxspeed, curbgyspeed, curbgname); - if (!strncmp("RECATKBG", curbgname, 8)) + if (!strcmp("RECATKBG", curbgname)) M_DrawRecordAttackForeground(); } } @@ -9583,7 +9583,7 @@ void M_DrawTimeAttackMenu(void) { F_SkyScroll(curbgxspeed, curbgyspeed, curbgname); // Draw and animate foreground - if (!strncmp("RECATKBG", curbgname, 8)) + if (!strcmp("RECATKBG", curbgname)) M_DrawRecordAttackForeground(); } if (curfadevalue) diff --git a/src/m_menu.h b/src/m_menu.h index eeda9cc580867ca1ae3fa2dee31cbdd643c5de4d..0658f38daadf4d2ba3c2362725543ab79bf39536 100644 --- a/src/m_menu.h +++ b/src/m_menu.h @@ -340,7 +340,7 @@ typedef struct { boolean used; char notes[441]; - char picname[8]; + char picname[9]; char skinname[SKINNAMESIZE*2+2]; // skin&skin\0 patch_t *charpic; UINT8 prev; diff --git a/src/p_setup.c b/src/p_setup.c index 8c73b85e6f7f36392d9ad3829e7a3bf1366f8407..61a49d958439ca627034f2d7ea6cbc6159c30d34 100644 --- a/src/p_setup.c +++ b/src/p_setup.c @@ -2883,9 +2883,7 @@ static void P_RunLevelScript(const char *scriptname) lumpnum_t lumpnum; char newname[9]; - strncpy(newname, scriptname, 8); - - newname[8] = '\0'; + strlcpy(newname, scriptname, sizeof(newname)); lumpnum = W_CheckNumForName(newname); diff --git a/src/r_data.c b/src/r_data.c index 831e75bef64276bae116ee376b31e2e3eda52a3c..c542bbd987030009e7e48e805d93a9247bd8e0a7 100644 --- a/src/r_data.c +++ b/src/r_data.c @@ -2603,7 +2603,7 @@ INT32 R_CheckTextureNumForName(const char *name) return 0; for (i = 0; i < tidcachelen; i++) - if (!strncasecmp(tidcache[i].name, name, 8)) + if (!strcasecmp(tidcache[i].name, name)) return tidcache[i].id; // Need to parse the list backwards, so textures loaded more recently are used in lieu of ones loaded earlier @@ -2613,8 +2613,7 @@ INT32 R_CheckTextureNumForName(const char *name) { tidcachelen++; Z_Realloc(tidcache, tidcachelen * sizeof(*tidcache), PU_STATIC, &tidcache); - strncpy(tidcache[tidcachelen-1].name, name, 8); - tidcache[tidcachelen-1].name[8] = '\0'; + strlcpy(tidcache[tidcachelen-1].name, name, sizeof(tidcache->name)); #ifndef ZDEBUG CONS_Debug(DBG_SETUP, "texture #%s: %s\n", sizeu1(tidcachelen), tidcache[tidcachelen-1].name); #endif diff --git a/src/v_video.c b/src/v_video.c index 2d1014c23f3e44820a7106a11a05df2acc7be525..e03d0a60de2418a6d2aaf9a41ba1d4effddf4a10 100644 --- a/src/v_video.c +++ b/src/v_video.c @@ -391,7 +391,7 @@ const char *R_GetPalname(UINT16 num) if (num > 0 && num <= 10000) snprintf(newpal, 8, "PAL%04u", num-1); - strncpy(palname, newpal, 8); + strlcpy(palname, newpal, sizeof(palname)); return palname; } diff --git a/src/w_wad.c b/src/w_wad.c index a8113235465ccb32fc1771fb27f54142aa277677..267f0619863e421740c03a8d91d1c04fe03e9193 100644 --- a/src/w_wad.c +++ b/src/w_wad.c @@ -440,17 +440,15 @@ static lumpinfo_t* ResGetLumpsWad (FILE* handle, UINT16* nlmp, const char* filen else lump_p->compression = CM_NOCOMPRESSION; memset(lump_p->name, 0x00, 9); - strncpy(lump_p->name, fileinfo->name, 8); + strlcpy(lump_p->name, fileinfo->name, 9); // Allocate the lump's long name. lump_p->longname = Z_Malloc(9 * sizeof(char), PU_STATIC, NULL); - strncpy(lump_p->longname, fileinfo->name, 8); - lump_p->longname[8] = '\0'; + strlcpy(lump_p->longname, fileinfo->name, 9); // Allocate the lump's full name. lump_p->fullname = Z_Malloc(9 * sizeof(char), PU_STATIC, NULL); - strncpy(lump_p->fullname, fileinfo->name, 8); - lump_p->fullname[8] = '\0'; + strlcpy(lump_p->fullname, fileinfo->name, 9); } free(fileinfov); *nlmp = numlumps; diff --git a/src/y_inter.c b/src/y_inter.c index f1764a816d5f2049b5fe516ba6ae8f010f679d4e..ce57bef9ec8af304e31829777c18de593c9cb6e4 100644 --- a/src/y_inter.c +++ b/src/y_inter.c @@ -1740,9 +1740,8 @@ static void Y_CalculateCompetitionWinners(void) data.competition.monitors[data.competition.numplayers] = monitors[winner]; data.competition.scores[data.competition.numplayers] = scores[winner]; - strncpy(tempname, player_names[winner], 8); - tempname[8] = '\0'; - strncpy(data.competition.name[data.competition.numplayers], tempname, 9); + strlcpy(tempname, player_names[winner], 9); + strlcpy(data.competition.name[data.competition.numplayers], tempname, 9); data.competition.color[data.competition.numplayers] = &players[winner].skincolor; data.competition.character[data.competition.numplayers] = &players[winner].skin;