From 5e964ff145835108189dcbb4b7fdae43cf682dbe Mon Sep 17 00:00:00 2001 From: Markus Uhlin Date: Fri, 5 Apr 2024 14:26:55 +0200 Subject: Replaced strcpy() calls --- FICS/ratings.c | 31 ++++++++++++++++++++++--------- 1 file changed, 22 insertions(+), 9 deletions(-) diff --git a/FICS/ratings.c b/FICS/ratings.c index 7ec1d8c..079f0af 100644 --- a/FICS/ratings.c +++ b/FICS/ratings.c @@ -37,6 +37,10 @@ #include "ratings.h" #include "utils.h" +#if __linux__ +#include +#endif + // Constants for Glicko system #define Gd 3.25 #define Gr0 1720 @@ -399,7 +403,8 @@ BestRemove(int p) } if (i < numB) { for (; i < numB - 1; i++) { - strcpy(bestB[i].name, bestB[i + 1].name); + strlcpy(bestB[i].name, bestB[i + 1].name, + sizeof bestB[i].name); bestB[i].rating = bestB[i + 1].rating; } numB--; @@ -411,7 +416,8 @@ BestRemove(int p) } if (i < numS) { for (; i < numS - 1; i++) { - strcpy(bestS[i].name, bestS[i + 1].name); + strlcpy(bestS[i].name, bestS[i + 1].name, + sizeof bestS[i].name); bestS[i].rating = bestS[i + 1].rating; } numS--; @@ -423,7 +429,8 @@ BestRemove(int p) } if (i < numW) { for (; i < numW - 1; i++) { - strcpy(bestW[i].name, bestW[i + 1].name); + strlcpy(bestW[i].name, bestW[i + 1].name, + sizeof bestW[i].name); bestW[i].rating = bestW[i + 1].rating; } numW--; @@ -446,11 +453,13 @@ BestAdd(int p) for (j = numB; j > where; j--) { if (j == MAX_BEST) continue; - strcpy(bestB[j].name, bestB[j - 1].name); + strlcpy(bestB[j].name, bestB[j - 1].name, + sizeof(bestB[j].name)); bestB[j].rating = bestB[j - 1].rating; } - strcpy(bestB[where].name, parray[p].name); + strlcpy(bestB[where].name, parray[p].name, + sizeof(bestB[where].name)); bestB[where].rating = parray[p].b_stats.rating; if (numB < MAX_BEST) @@ -469,11 +478,13 @@ BestAdd(int p) for (j = numS; j > where; j--) { if (j == MAX_BEST) continue; - strcpy(bestS[j].name, bestS[j - 1].name); + strlcpy(bestS[j].name, bestS[j - 1].name, + sizeof(bestS[j].name)); bestS[j].rating = bestS[j - 1].rating; } - strcpy(bestS[where].name, parray[p].name); + strlcpy(bestS[where].name, parray[p].name, + sizeof(bestS[where].name)); bestS[where].rating = parray[p].s_stats.rating; if (numS < MAX_BEST) @@ -492,11 +503,13 @@ BestAdd(int p) for (j = numW; j > where; j--) { if (j == MAX_BEST) continue; - strcpy(bestW[j].name, bestW[j - 1].name); + strlcpy(bestW[j].name, bestW[j - 1].name, + sizeof(bestW[j].name)); bestW[j].rating = bestW[j - 1].rating; } - strcpy(bestW[where].name, parray[p].name); + strlcpy(bestW[where].name, parray[p].name, + sizeof(bestW[where].name)); bestW[where].rating = parray[p].w_stats.rating; if (numW < MAX_BEST) -- cgit v1.2.3