From 25f5e7c47606602b73350860e626c3e3666e89d5 Mon Sep 17 00:00:00 2001 From: Triply Date: Tue, 29 Sep 2009 19:11:50 +0200 Subject: [PATCH] [8565] Fixed crash added in [8560]. Thx to KAPATEJIb. Signed-off-by: Triply --- src/game/ArenaTeam.cpp | 3 +++ src/game/Guild.cpp | 9 +++++++++ src/shared/revision_nr.h | 2 +- 3 files changed, 13 insertions(+), 1 deletion(-) diff --git a/src/game/ArenaTeam.cpp b/src/game/ArenaTeam.cpp index d38cc71fd67..dbd785006d4 100644 --- a/src/game/ArenaTeam.cpp +++ b/src/game/ArenaTeam.cpp @@ -198,6 +198,9 @@ bool ArenaTeam::LoadMembersFromDB(QueryResult *arenaTeamMembersResult) do { Field *fields = arenaTeamMembersResult->Fetch(); + //prevent crash if db records are broken, when all members in result are already processed and current team hasn't got any members + if (!fields) + break; uint32 arenaTeamId = fields[0].GetUInt32(); if (arenaTeamId < m_TeamId) { diff --git a/src/game/Guild.cpp b/src/game/Guild.cpp index d9707206866..15f642c7e5a 100644 --- a/src/game/Guild.cpp +++ b/src/game/Guild.cpp @@ -290,6 +290,9 @@ bool Guild::LoadRanksFromDB(QueryResult *guildRanksResult) do { fields = guildRanksResult->Fetch(); + //condition that would be true when all ranks in QueryResult will be processed and guild without ranks is being processed + if (!fields) + break; uint32 guildId = fields[0].GetUInt32(); if (guildId < m_Id) @@ -352,6 +355,9 @@ bool Guild::LoadMembersFromDB(QueryResult *guildMembersResult) do { Field *fields = guildMembersResult->Fetch(); + //this condition will be true when all rows in QueryResult are processed and new guild without members is going to be loaded - prevent crash + if (!fields) + break; uint32 guildId = fields[0].GetUInt32(); if (guildId < m_Id) { @@ -1461,6 +1467,9 @@ bool Guild::LoadBankRightsFromDB(QueryResult *guildBankTabRightsResult) do { Field *fields = guildBankTabRightsResult->Fetch(); + //prevent crash when all rights in result are already processed + if (!fields) + break; uint32 guildId = fields[0].GetUInt32(); if (guildId < m_Id) { diff --git a/src/shared/revision_nr.h b/src/shared/revision_nr.h index 6679f88e595..841279f540b 100644 --- a/src/shared/revision_nr.h +++ b/src/shared/revision_nr.h @@ -1,4 +1,4 @@ #ifndef __REVISION_NR_H__ #define __REVISION_NR_H__ - #define REVISION_NR "8564" + #define REVISION_NR "8565" #endif // __REVISION_NR_H__