From 5f1977cb1d690d2e60a1f5355244ec472e014278 Mon Sep 17 00:00:00 2001 From: Nay Date: Thu, 30 Aug 2012 19:07:59 +0100 Subject: Core: Fix many "errors"/warnings and coding style (1) Extractors, worldserver, authserver, shared and collision affected Errors were found using Cppcheck, open-source static analysis tool --- src/server/authserver/Server/AuthSocket.cpp | 19 +++++++---- src/server/collision/Maps/MapTree.cpp | 4 +-- src/server/collision/Maps/TileAssembler.cpp | 5 +-- src/server/collision/Models/ModelInstance.h | 2 +- src/server/shared/Cryptography/BigNumber.cpp | 2 +- src/server/shared/Cryptography/BigNumber.h | 2 +- src/server/shared/DataStores/DBCFileLoader.cpp | 4 +-- src/server/shared/DataStores/DBCFileLoader.h | 4 +-- src/server/shared/Logging/Log.cpp | 4 +-- src/server/shared/Utilities/ServiceWin32.cpp | 6 ++-- src/server/shared/Utilities/Util.cpp | 2 +- src/server/worldserver/TCSoap/TCSoap.h | 2 +- src/tools/map_extractor/System.cpp | 6 ++-- src/tools/map_extractor/dbcfile.cpp | 6 ++-- src/tools/vmap4_extractor/adtfile.cpp | 42 +++++++++++------------ src/tools/vmap4_extractor/dbcfile.cpp | 5 +-- src/tools/vmap4_extractor/model.cpp | 47 ++++++++++++-------------- src/tools/vmap4_extractor/model.h | 27 ++++++--------- src/tools/vmap4_extractor/vmapexport.cpp | 8 ++--- src/tools/vmap4_extractor/wdtfile.cpp | 18 ++++------ src/tools/vmap4_extractor/wdtfile.h | 5 ++- src/tools/vmap4_extractor/wmo.cpp | 39 ++++++++++++--------- src/tools/vmap4_extractor/wmo.h | 36 ++++++++++---------- 23 files changed, 140 insertions(+), 155 deletions(-) (limited to 'src') diff --git a/src/server/authserver/Server/AuthSocket.cpp b/src/server/authserver/Server/AuthSocket.cpp index 2ad80c7f62d..ee3a9677130 100755 --- a/src/server/authserver/Server/AuthSocket.cpp +++ b/src/server/authserver/Server/AuthSocket.cpp @@ -196,7 +196,7 @@ const AuthHandler table[] = Patcher PatchesCache; // Constructor - set the N and g values for SRP6 -AuthSocket::AuthSocket(RealmSocket& socket) : socket_(socket) +AuthSocket::AuthSocket(RealmSocket& socket) : socket_(socket), pPatch(NULL) { N.SetHexStr("894B645E89E1535BBDAD5B8B290650530801B18EBFBF5E8FAB3C82872A3E9BB7"); g.SetDword(7); @@ -869,7 +869,7 @@ bool AuthSocket::_HandleRealmList() flag &= ~REALM_FLAG_SPECIFYBUILD; std::string name = i->first; - if (_expversion & PRE_BC_EXP_FLAG && flag & REALM_FLAG_SPECIFYBUILD) + if (buildInfo && (_expversion & PRE_BC_EXP_FLAG && flag & REALM_FLAG_SPECIFYBUILD)) { std::ostringstream ss; ss << name << " (" << buildInfo->MajorVersion << '.' << buildInfo->MinorVersion << '.' << buildInfo->BugfixVersion << ')'; @@ -902,10 +902,15 @@ bool AuthSocket::_HandleRealmList() if (_expversion & POST_BC_EXP_FLAG && flag & REALM_FLAG_SPECIFYBUILD) { - pkt << uint8(buildInfo->MajorVersion); - pkt << uint8(buildInfo->MinorVersion); - pkt << uint8(buildInfo->BugfixVersion); - pkt << uint16(buildInfo->Build); + if (buildInfo) + { + pkt << uint8(buildInfo->MajorVersion); + pkt << uint8(buildInfo->MinorVersion); + pkt << uint8(buildInfo->BugfixVersion); + pkt << uint16(buildInfo->Build); + } + else + pkt << uint8(0) << uint8(0) << uint8(0) << uint16(0); } ++RealmListSize; @@ -946,7 +951,7 @@ bool AuthSocket::_HandleXferResume() { sLog->outDebug(LOG_FILTER_AUTHSERVER, "Entering _HandleXferResume"); // Check packet length and patch existence - if (socket().recv_len() < 9 || !pPatch) + if (socket().recv_len() < 9 || !pPatch) // FIXME: pPatch is never used { sLog->outError(LOG_FILTER_AUTHSERVER, "Error while resuming patch transfer (wrong packet)"); return false; diff --git a/src/server/collision/Maps/MapTree.cpp b/src/server/collision/Maps/MapTree.cpp index 6489ddd7a4f..f35e36d92fd 100644 --- a/src/server/collision/Maps/MapTree.cpp +++ b/src/server/collision/Maps/MapTree.cpp @@ -124,8 +124,8 @@ namespace VMAP return intersectionCallBack.result; } - StaticMapTree::StaticMapTree(uint32 mapID, const std::string &basePath): - iMapID(mapID), iTreeValues(0), iBasePath(basePath) + StaticMapTree::StaticMapTree(uint32 mapID, const std::string &basePath) + : iMapID(mapID), iTreeValues(0), iBasePath(basePath), iIsTiled(false) { if (iBasePath.length() > 0 && iBasePath[iBasePath.length()-1] != '/' && iBasePath[iBasePath.length()-1] != '\\') { diff --git a/src/server/collision/Maps/TileAssembler.cpp b/src/server/collision/Maps/TileAssembler.cpp index 207b652a4d6..8458ffdd5d3 100644 --- a/src/server/collision/Maps/TileAssembler.cpp +++ b/src/server/collision/Maps/TileAssembler.cpp @@ -54,11 +54,8 @@ namespace VMAP //================================================================= TileAssembler::TileAssembler(const std::string& pSrcDirName, const std::string& pDestDirName) + : iSrcDir(pSrcDirName), iDestDir(pDestDirName), iCurrentUniqueNameId(0), iFilterMethod(NULL) { - iCurrentUniqueNameId = 0; - iFilterMethod = NULL; - iSrcDir = pSrcDirName; - iDestDir = pDestDirName; //mkdir(iDestDir); //init(); } diff --git a/src/server/collision/Models/ModelInstance.h b/src/server/collision/Models/ModelInstance.h index 1118b654578..2745628ac7e 100755 --- a/src/server/collision/Models/ModelInstance.h +++ b/src/server/collision/Models/ModelInstance.h @@ -63,7 +63,7 @@ namespace VMAP class ModelInstance: public ModelSpawn { public: - ModelInstance(): iModel(0) {} + ModelInstance(): iModel(0), iInvScale(0.0f) {} ModelInstance(const ModelSpawn &spawn, WorldModel* model); void setUnloaded() { iModel = 0; } bool intersectRay(const G3D::Ray& pRay, float& pMaxDist, bool pStopAtFirstHit) const; diff --git a/src/server/shared/Cryptography/BigNumber.cpp b/src/server/shared/Cryptography/BigNumber.cpp index 364ee76ec75..146b2c37ad3 100755 --- a/src/server/shared/Cryptography/BigNumber.cpp +++ b/src/server/shared/Cryptography/BigNumber.cpp @@ -75,7 +75,7 @@ void BigNumber::SetRand(int numbits) BN_rand(_bn, numbits, 0, 1); } -BigNumber BigNumber::operator=(const BigNumber &bn) +BigNumber& BigNumber::operator=(const BigNumber &bn) { if (this == &bn) return *this; diff --git a/src/server/shared/Cryptography/BigNumber.h b/src/server/shared/Cryptography/BigNumber.h index 6646245a6a0..a27d74fb5c7 100755 --- a/src/server/shared/Cryptography/BigNumber.h +++ b/src/server/shared/Cryptography/BigNumber.h @@ -39,7 +39,7 @@ class BigNumber void SetRand(int numbits); - BigNumber operator=(const BigNumber &bn); + BigNumber& operator=(const BigNumber &bn); BigNumber operator+=(const BigNumber &bn); BigNumber operator+(const BigNumber &bn) diff --git a/src/server/shared/DataStores/DBCFileLoader.cpp b/src/server/shared/DataStores/DBCFileLoader.cpp index f909c8566bb..85b61c4f143 100755 --- a/src/server/shared/DataStores/DBCFileLoader.cpp +++ b/src/server/shared/DataStores/DBCFileLoader.cpp @@ -23,10 +23,8 @@ #include "DBCFileLoader.h" #include "Errors.h" -DBCFileLoader::DBCFileLoader() +DBCFileLoader::DBCFileLoader() : stringTable(NULL), data(NULL), fieldsOffset(NULL) { - data = NULL; - fieldsOffset = NULL; } bool DBCFileLoader::Load(const char* filename, const char* fmt) diff --git a/src/server/shared/DataStores/DBCFileLoader.h b/src/server/shared/DataStores/DBCFileLoader.h index a43807a3b59..eb8317fbefd 100755 --- a/src/server/shared/DataStores/DBCFileLoader.h +++ b/src/server/shared/DataStores/DBCFileLoader.h @@ -32,8 +32,8 @@ enum FT_BYTE='b', //uint8 FT_SORT='d', //sorted by this field, field is not included FT_IND='n', //the same, but parsed to data - FT_LOGIC='l', //Logical (boolean) - FT_SQL_PRESENT='p', //Used in sql format to mark column present in sql dbc + FT_LOGIC='l', //Logical (boolean) + FT_SQL_PRESENT='p', //Used in sql format to mark column present in sql dbc FT_SQL_ABSENT='a' //Used in sql format to mark column absent in sql dbc }; diff --git a/src/server/shared/Logging/Log.cpp b/src/server/shared/Logging/Log.cpp index 6e17a32c78b..0b2bbb3122a 100755 --- a/src/server/shared/Logging/Log.cpp +++ b/src/server/shared/Logging/Log.cpp @@ -103,7 +103,7 @@ void Log::CreateAppenderFromConfig(const char* name) LogLevel level = LogLevel(atoi(*iter)); if (level > LOG_LEVEL_FATAL) { - fprintf(stderr, "Log::CreateAppenderFromConfig: Wrong Log Level %u for appender %s\n", level, name); + fprintf(stderr, "Log::CreateAppenderFromConfig: Wrong Log Level %d for appender %s\n", level, name); return; } @@ -158,7 +158,7 @@ void Log::CreateAppenderFromConfig(const char* name) break; } default: - fprintf(stderr, "Log::CreateAppenderFromConfig: Unknown type %u for appender %s\n", type, name); + fprintf(stderr, "Log::CreateAppenderFromConfig: Unknown type %d for appender %s\n", type, name); break; } } diff --git a/src/server/shared/Utilities/ServiceWin32.cpp b/src/server/shared/Utilities/ServiceWin32.cpp index c6e9d385be3..91a78af1adc 100755 --- a/src/server/shared/Utilities/ServiceWin32.cpp +++ b/src/server/shared/Utilities/ServiceWin32.cpp @@ -52,8 +52,6 @@ typedef WINADVAPI BOOL (WINAPI *CSD_T)(SC_HANDLE, DWORD, LPCVOID); bool WinServiceInstall() { - CSD_T ChangeService_Config2; - HMODULE advapi32; SC_HANDLE serviceControlManager = OpenSCManager(0, 0, SC_MANAGER_CREATE_SERVICE); if (serviceControlManager) @@ -79,7 +77,7 @@ bool WinServiceInstall() 0); // no password if (service) { - advapi32 = GetModuleHandle("ADVAPI32.DLL"); + HMODULE advapi32 = GetModuleHandle("ADVAPI32.DLL"); if (!advapi32) { CloseServiceHandle(service); @@ -87,7 +85,7 @@ bool WinServiceInstall() return false; } - ChangeService_Config2 = (CSD_T) GetProcAddress(advapi32, "ChangeServiceConfig2A"); + CSD_T ChangeService_Config2 = (CSD_T) GetProcAddress(advapi32, "ChangeServiceConfig2A"); if (!ChangeService_Config2) { CloseServiceHandle(service); diff --git a/src/server/shared/Utilities/Util.cpp b/src/server/shared/Utilities/Util.cpp index 7bedf9690ca..9917bbb5309 100755 --- a/src/server/shared/Utilities/Util.cpp +++ b/src/server/shared/Utilities/Util.cpp @@ -217,7 +217,7 @@ uint32 CreatePIDFile(const std::string& filename) pid_t pid = getpid(); #endif - fprintf(pid_file, "%d", pid ); + fprintf(pid_file, "%u", pid ); fclose(pid_file); return (uint32)pid; diff --git a/src/server/worldserver/TCSoap/TCSoap.h b/src/server/worldserver/TCSoap/TCSoap.h index 285adaaaf4b..51ffb3a91c8 100755 --- a/src/server/worldserver/TCSoap/TCSoap.h +++ b/src/server/worldserver/TCSoap/TCSoap.h @@ -51,7 +51,7 @@ class SOAPCommand { public: SOAPCommand(): - pendingCommands(0, USYNC_THREAD, "pendingCommands") + pendingCommands(0, USYNC_THREAD, "pendingCommands"), m_success(false) { } diff --git a/src/tools/map_extractor/System.cpp b/src/tools/map_extractor/System.cpp index d64276c6363..f474925313e 100644 --- a/src/tools/map_extractor/System.cpp +++ b/src/tools/map_extractor/System.cpp @@ -900,7 +900,7 @@ void ExtractMapsFromMpq(uint32 build) printf("Convert map files\n"); for(uint32 z = 0; z < map_count; ++z) { - printf("Extract %s (%d/%d) \n", map_ids[z].name, z+1, map_count); + printf("Extract %s (%d/%u) \n", map_ids[z].name, z+1, map_count); // Loadup map grid data sprintf(mpq_map_name, "World\\Maps\\%s\\%s.wdt", map_ids[z].name, map_ids[z].name); WDT_file wdt; @@ -980,13 +980,13 @@ void ExtractDBCFiles(int locale, bool basicLocale) } // extract DBCs - int count = 0; + uint32 count = 0; for (set::iterator iter = dbcfiles.begin(); iter != dbcfiles.end(); ++iter) { string filename = path; filename += (iter->c_str() + strlen("DBFilesClient\\")); - if(ExtractFile(iter->c_str(), filename)) + if (ExtractFile(iter->c_str(), filename)) ++count; } printf("Extracted %u DBC files\n\n", count); diff --git a/src/tools/map_extractor/dbcfile.cpp b/src/tools/map_extractor/dbcfile.cpp index 927d3d62b7f..c1cab7ddb2f 100644 --- a/src/tools/map_extractor/dbcfile.cpp +++ b/src/tools/map_extractor/dbcfile.cpp @@ -3,12 +3,12 @@ #include "dbcfile.h" #include "mpq_libmpq04.h" -DBCFile::DBCFile(const std::string &filename): - filename(filename), - data(0) +DBCFile::DBCFile(const std::string& filename): + filename(filename), recordSize(0), recordCount(0), fieldCount(0), stringSize(0), data(NULL), stringTable(NULL) { } + bool DBCFile::open() { MPQFile f(filename.c_str()); diff --git a/src/tools/vmap4_extractor/adtfile.cpp b/src/tools/vmap4_extractor/adtfile.cpp index a966172a3be..a605118eead 100644 --- a/src/tools/vmap4_extractor/adtfile.cpp +++ b/src/tools/vmap4_extractor/adtfile.cpp @@ -26,7 +26,7 @@ #define snprintf _snprintf #endif -const char * GetPlainName(const char * FileName) +char const* GetPlainName(char const* FileName) { const char * szTemp; @@ -35,7 +35,7 @@ const char * GetPlainName(const char * FileName) return FileName; } -char * GetPlainName(char * FileName) +char* GetPlainName(char* FileName) { char * szTemp; @@ -44,24 +44,21 @@ char * GetPlainName(char * FileName) return FileName; } -void fixnamen(char *name, size_t len) +void fixnamen(char* name, size_t len) { - for (size_t i=0; i0 && name[i]>='A' && name[i]<='Z' && isalpha(name[i-1])) - { + if (i > 0 && name[i] >= 'A' && name[i] <= 'Z' && isalpha(name[i-1])) name[i] |= 0x20; - } else if ((i==0 || !isalpha(name[i-1])) && name[i]>='a' && name[i]<='z') - { + else if ((i == 0 || !isalpha(name[i-1])) && name[i]>='a' && name[i]<='z') name[i] &= ~0x20; - } } //extension in lowercase - for(size_t i=len-3; i -DBCFile::DBCFile(const std::string &filename) : filename(filename) +DBCFile::DBCFile(const std::string& filename): + filename(filename), recordSize(0), recordCount(0), fieldCount(0), stringSize(0), data(NULL), stringTable(NULL) { - data = NULL; + } bool DBCFile::open() diff --git a/src/tools/vmap4_extractor/model.cpp b/src/tools/vmap4_extractor/model.cpp index e81972f521f..57f9b421dbe 100644 --- a/src/tools/vmap4_extractor/model.cpp +++ b/src/tools/vmap4_extractor/model.cpp @@ -26,15 +26,14 @@ Model::Model(std::string &filename) : filename(filename), vertices(0), indices(0) { + memset(&header, 0, sizeof(header)); } bool Model::open() { MPQFile f(filename.c_str()); - ok = !f.isEof(); - - if (!ok) + if (f.isEof()) { f.close(); // Do not show this error on console to avoid confusion, the extractor can continue working even if some models fail to load @@ -52,9 +51,7 @@ bool Model::open() vertices = new Vec3D[header.nBoundingVertices]; f.read(vertices,header.nBoundingVertices*12); for (uint32 i=0; i0) - { + if (nIndexes >0) fwrite(indices, sizeof(unsigned short), nIndexes, output); - } - fwrite("VERT",4, 1, output); + + fwrite("VERT", 4, 1, output); wsize = sizeof(int) + sizeof(float) * 3 * nVertices; fwrite(&wsize, sizeof(int), 1, output); fwrite(&nVertices, sizeof(int), 1, output); - if(nVertices >0) + if (nVertices >0) { for(uint32 vpos=0; vpos -class Model; -class WMOInstance; class MPQFile; Vec3D fixCoordSystem(Vec3D v); @@ -35,18 +32,14 @@ class Model { public: ModelHeader header; - uint32 offsBB_vertices, offsBB_indices; - Vec3D *BB_vertices, *vertices; - uint16 *BB_indices, *indices; - size_t nIndices; + Vec3D* vertices; + uint16* indices; bool open(); - bool ConvertToVMAPModel(const char * outfilename); + bool ConvertToVMAPModel(char const* outfilename); - bool ok; - - Model(std::string &filename); - ~Model() {_unload();} + Model(std::string& filename); + ~Model() { _unload(); } private: void _unload() @@ -56,22 +49,22 @@ private: vertices = NULL; indices = NULL; } + std::string filename; - char outfilename; }; class ModelInstance { public: - Model *model; + Model* model; uint32 id; Vec3D pos, rot; unsigned int d1, scale; - float w,sc; + float w, sc; - ModelInstance() {} - ModelInstance(MPQFile &f,const char* ModelInstName, uint32 mapID, uint32 tileX, uint32 tileY, FILE *pDirfile); + ModelInstance() : model(NULL), d1(0), scale(0), w(0.0f), sc(0.0f), id(0) {} + ModelInstance(MPQFile& f, char const* ModelInstName, uint32 mapID, uint32 tileX, uint32 tileY, FILE* pDirfile); }; diff --git a/src/tools/vmap4_extractor/vmapexport.cpp b/src/tools/vmap4_extractor/vmapexport.cpp index 126a543400c..40a22a2a6e0 100644 --- a/src/tools/vmap4_extractor/vmapexport.cpp +++ b/src/tools/vmap4_extractor/vmapexport.cpp @@ -159,12 +159,12 @@ bool ExtractSingleWmo(std::string& fname) int p = 0; //Select root wmo files - const char * rchr = strrchr(plain_name, '_'); + char const* rchr = strrchr(plain_name, '_'); if(rchr != NULL) { char cpy[4]; - strncpy((char*)cpy,rchr,4); - for (int i=0;i < 4; ++i) + strncpy((char*)cpy, rchr, 4); + for (int i = 0; i < 4; ++i) { int m = cpy[i]; if(isdigit(m)) @@ -200,7 +200,7 @@ bool ExtractSingleWmo(std::string& fname) strcpy(temp, fname.c_str()); temp[fname.length()-4] = 0; char groupFileName[1024]; - sprintf(groupFileName,"%s_%03d.wmo",temp, i); + sprintf(groupFileName, "%s_%03u.wmo", temp, i); //printf("Trying to open groupfile %s\n",groupFileName); string s = groupFileName; diff --git a/src/tools/vmap4_extractor/wdtfile.cpp b/src/tools/vmap4_extractor/wdtfile.cpp index e3ee545db19..a799a928710 100644 --- a/src/tools/vmap4_extractor/wdtfile.cpp +++ b/src/tools/vmap4_extractor/wdtfile.cpp @@ -30,7 +30,7 @@ char * wdtGetPlainName(char * FileName) return FileName; } -WDTFile::WDTFile(char* file_name, char* file_name1):WDT(file_name) +WDTFile::WDTFile(char* file_name, char* file_name1) : WDT(file_name), gWmoInstansName(NULL), gnWMO(0) { filename.append(file_name1,strlen(file_name1)); } @@ -78,9 +78,8 @@ bool WDTFile::init(char *map_id, unsigned int mapID) char *p=buf; int q = 0; gWmoInstansName = new string[size]; - while (p