From 44560a46b79f2659c33bdf37509faefb51977d66 Mon Sep 17 00:00:00 2001 From: FinnHornhoover <30576665+FinnHornhoover@users.noreply.github.com> Date: Sun, 24 Dec 2023 04:49:51 +0300 Subject: [PATCH] Rank Calculation Out-of-Bounds Fix (#268) --- src/Racing.cpp | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/Racing.cpp b/src/Racing.cpp index 2d6c4c0..844038b 100644 --- a/src/Racing.cpp +++ b/src/Racing.cpp @@ -133,8 +133,9 @@ static void racingEnd(CNSocket* sock, CNPacketData* data) { std::vector* rankRewards = &EPRewards[epInfo.EPID].second; // top ranking + int maxRank = rankScores->size() - 1; int topRank = 0; - while (rankScores->at(topRank) > topRankingPlayer.Score) + while (topRank < maxRank && rankScores->at(topRank) > topRankingPlayer.Score) topRank++; resp.iEPTopRank = topRank + 1; @@ -144,7 +145,7 @@ static void racingEnd(CNSocket* sock, CNPacketData* data) { // this ranking int rank = 0; - while (rankScores->at(rank) > postRanking.Score) + while (rank < maxRank && rankScores->at(rank) > postRanking.Score) rank++; resp.iEPRank = rank + 1;