- fixed some bugs discovered by coverity scan

This commit is contained in:
SoftCoder
2016-01-20 21:34:23 -08:00
parent 0c12b5fb8c
commit d6dbb187cc
8 changed files with 150 additions and 128 deletions

View File

@@ -622,7 +622,7 @@ const Resource *AiInterface::getResource(const ResourceType *rt){
} }
Unit *AiInterface::getMyUnitPtr(int unitIndex) { Unit *AiInterface::getMyUnitPtr(int unitIndex) {
if(unitIndex >= world->getFaction(factionIndex)->getUnitCount()) { if(unitIndex < 0 || unitIndex >= world->getFaction(factionIndex)->getUnitCount()) {
char szBuf[8096]=""; char szBuf[8096]="";
snprintf(szBuf,8096,"In [%s::%s Line: %d] unitIndex >= world->getFaction(factionIndex)->getUnitCount(), unitIndex = %d, world->getFaction(factionIndex)->getUnitCount() = %d",__FILE__,__FUNCTION__,__LINE__,unitIndex,world->getFaction(factionIndex)->getUnitCount()); snprintf(szBuf,8096,"In [%s::%s Line: %d] unitIndex >= world->getFaction(factionIndex)->getUnitCount(), unitIndex = %d, world->getFaction(factionIndex)->getUnitCount() = %d",__FILE__,__FUNCTION__,__LINE__,unitIndex,world->getFaction(factionIndex)->getUnitCount());
throw megaglest_runtime_error(szBuf); throw megaglest_runtime_error(szBuf);

View File

@@ -1305,6 +1305,7 @@ void AiRuleProduce::produceSpecific(const ProduceTask *pt){
//besti=i%(producers.size()); //besti=i%(producers.size());
} }
} }
if(bestIndex >= 0) {
if( aiInterface->getMyUnit(bestIndex)->getCommandSize() > 2) { if( aiInterface->getMyUnit(bestIndex)->getCommandSize() > 2) {
// maybe we need another producer of this kind if possible! // maybe we need another producer of this kind if possible!
if(aiInterface->reqsOk(aiInterface->getMyUnit(bestIndex)->getType())) { if(aiInterface->reqsOk(aiInterface->getMyUnit(bestIndex)->getType())) {
@@ -1421,9 +1422,8 @@ void AiRuleProduce::produceSpecific(const ProduceTask *pt){
aiInterface->giveCommand(bestIndex, defCt); aiInterface->giveCommand(bestIndex, defCt);
} }
} }
else else {
{ if(currentCommandCount == 0) {
if(currentCommandCount==0) {
if(SystemFlags::getSystemSettingType(SystemFlags::debugSystem).enabled) SystemFlags::OutputDebug(SystemFlags::debugSystem,"In [%s::%s Line: %d]\n",__FILE__,__FUNCTION__,__LINE__); if(SystemFlags::getSystemSettingType(SystemFlags::debugSystem).enabled) SystemFlags::OutputDebug(SystemFlags::debugSystem,"In [%s::%s Line: %d]\n",__FILE__,__FUNCTION__,__LINE__);
defCt = NULL; defCt = NULL;
if(producersDefaultCommandType.find(bestIndex) != producersDefaultCommandType.end()) { if(producersDefaultCommandType.find(bestIndex) != producersDefaultCommandType.end()) {
@@ -1466,6 +1466,7 @@ void AiRuleProduce::produceSpecific(const ProduceTask *pt){
aiInterface->giveCommand(bestIndex, defCt); aiInterface->giveCommand(bestIndex, defCt);
} }
} }
}
else { else {
int pIndex = ai->getRandom()->randRange(0, (int)producers.size()-1); int pIndex = ai->getRandom()->randRange(0, (int)producers.size()-1);
int producerIndex= producers[pIndex]; int producerIndex= producers[pIndex];

View File

@@ -2012,6 +2012,9 @@ void NetworkMessageCommandList::fromEndianDetail() {
// class NetworkMessageText // class NetworkMessageText
// ===================================================== // =====================================================
NetworkMessageText::NetworkMessageText() {
messageType = nmtText;
}
NetworkMessageText::NetworkMessageText(const string &text, int teamIndex, int playerIndex, NetworkMessageText::NetworkMessageText(const string &text, int teamIndex, int playerIndex,
const string targetLanguage) { const string targetLanguage) {
if((int)text.length() >= maxTextStringSize) { if((int)text.length() >= maxTextStringSize) {
@@ -2759,6 +2762,10 @@ void NetworkMessageSynchNetworkGameDataStatus::fromEndianDetail() {
// class NetworkMessageSynchNetworkGameDataFileCRCCheck // class NetworkMessageSynchNetworkGameDataFileCRCCheck
// ===================================================== // =====================================================
NetworkMessageSynchNetworkGameDataFileCRCCheck::NetworkMessageSynchNetworkGameDataFileCRCCheck() {
messageType= nmtSynchNetworkGameDataFileCRCCheck;
}
NetworkMessageSynchNetworkGameDataFileCRCCheck::NetworkMessageSynchNetworkGameDataFileCRCCheck( NetworkMessageSynchNetworkGameDataFileCRCCheck::NetworkMessageSynchNetworkGameDataFileCRCCheck(
uint32 totalFileCount, uint32 fileIndex, uint32 fileCRC, const string fileName) uint32 totalFileCount, uint32 fileIndex, uint32 fileCRC, const string fileName)
{ {
@@ -2872,7 +2879,9 @@ void NetworkMessageSynchNetworkGameDataFileCRCCheck::fromEndian() {
// ===================================================== // =====================================================
// class NetworkMessageSynchNetworkGameDataFileGet // class NetworkMessageSynchNetworkGameDataFileGet
// ===================================================== // =====================================================
NetworkMessageSynchNetworkGameDataFileGet::NetworkMessageSynchNetworkGameDataFileGet() {
messageType= nmtSynchNetworkGameDataFileGet;
}
NetworkMessageSynchNetworkGameDataFileGet::NetworkMessageSynchNetworkGameDataFileGet(const string fileName) { NetworkMessageSynchNetworkGameDataFileGet::NetworkMessageSynchNetworkGameDataFileGet(const string fileName) {
messageType= nmtSynchNetworkGameDataFileGet; messageType= nmtSynchNetworkGameDataFileGet;
data.fileName = fileName; data.fileName = fileName;
@@ -3307,6 +3316,9 @@ void NetworkMessageLoadingStatus::fromEndian() {
// ===================================================== // =====================================================
// class NetworkMessageMarkCell // class NetworkMessageMarkCell
// ===================================================== // =====================================================
NetworkMessageMarkCell::NetworkMessageMarkCell() {
messageType = nmtMarkCell;
}
NetworkMessageMarkCell::NetworkMessageMarkCell(Vec2i target, int factionIndex, const string &text, int playerIndex) { NetworkMessageMarkCell::NetworkMessageMarkCell(Vec2i target, int factionIndex, const string &text, int playerIndex) {
if((int)text.length() >= maxTextStringSize) { if((int)text.length() >= maxTextStringSize) {

View File

@@ -520,7 +520,7 @@ protected:
virtual unsigned char * packMessage(); virtual unsigned char * packMessage();
public: public:
NetworkMessageText(){} NetworkMessageText();
NetworkMessageText(const string &text, int teamIndex, int playerIndex, NetworkMessageText(const string &text, int teamIndex, int playerIndex,
const string targetLanguage); const string targetLanguage);
@@ -793,7 +793,7 @@ protected:
virtual unsigned char * packMessage(); virtual unsigned char * packMessage();
public: public:
NetworkMessageSynchNetworkGameDataFileCRCCheck() {}; NetworkMessageSynchNetworkGameDataFileCRCCheck();
NetworkMessageSynchNetworkGameDataFileCRCCheck(uint32 totalFileCount, uint32 fileIndex, uint32 fileCRC, const string fileName); NetworkMessageSynchNetworkGameDataFileCRCCheck(uint32 totalFileCount, uint32 fileIndex, uint32 fileCRC, const string fileName);
virtual size_t getDataSize() const { return sizeof(Data); } virtual size_t getDataSize() const { return sizeof(Data); }
@@ -845,7 +845,7 @@ protected:
virtual unsigned char * packMessage(); virtual unsigned char * packMessage();
public: public:
NetworkMessageSynchNetworkGameDataFileGet() {}; NetworkMessageSynchNetworkGameDataFileGet();
NetworkMessageSynchNetworkGameDataFileGet(const string fileName); NetworkMessageSynchNetworkGameDataFileGet(const string fileName);
virtual size_t getDataSize() const { return sizeof(Data); } virtual size_t getDataSize() const { return sizeof(Data); }
@@ -1089,7 +1089,7 @@ protected:
virtual unsigned char * packMessage(); virtual unsigned char * packMessage();
public: public:
NetworkMessageMarkCell(){} NetworkMessageMarkCell();
NetworkMessageMarkCell(Vec2i target, int factionIndex, const string &text, int playerIndex); NetworkMessageMarkCell(Vec2i target, int factionIndex, const string &text, int playerIndex);
virtual size_t getDataSize() const { return sizeof(Data); } virtual size_t getDataSize() const { return sizeof(Data); }

View File

@@ -85,6 +85,7 @@ private:
string fileName; string fileName;
public: public:
OggSoundFileLoader();
virtual void open(const string &path, SoundInfo *soundInfo); virtual void open(const string &path, SoundInfo *soundInfo);
virtual uint32 read(int8 *samples, uint32 size); virtual uint32 read(int8 *samples, uint32 size);
virtual void close(); virtual void close();

View File

@@ -254,6 +254,9 @@ int zipfile_tool(int argc, const char *argv[]) {
uint n = BUF_SIZE - stream.avail_out; uint n = BUF_SIZE - stream.avail_out;
if (fwrite(s_outbuf, 1, n, pOutfile) != n) { if (fwrite(s_outbuf, 1, n, pOutfile) != n) {
if(SystemFlags::VERBOSE_MODE_ENABLED) printf("Failed writing to output file!\n"); if(SystemFlags::VERBOSE_MODE_ENABLED) printf("Failed writing to output file!\n");
if(pInfile) fclose(pInfile);
if(pOutfile) fclose(pOutfile);
return EXIT_FAILURE; return EXIT_FAILURE;
} }
stream.next_out = s_outbuf; stream.next_out = s_outbuf;

View File

@@ -107,7 +107,7 @@ public:
base_thread->signalQuit(); base_thread->signalQuit();
sleep(10); sleep(10);
if(Thread::getEnableVerboseMode()) printf("!!!! cleanupPendingThread Line: %d thread = %p [%s]\n",__LINE__,thread,(base_thread != NULL ? base_thread->getUniqueID().c_str() : "n/a")); if(Thread::getEnableVerboseMode()) printf("!!!! cleanupPendingThread Line: %d thread = %p [%s]\n",__LINE__,thread,base_thread->getUniqueID().c_str());
if(base_thread->getRunningStatus() == true || base_thread->getExecutingTask() == true) { if(base_thread->getRunningStatus() == true || base_thread->getExecutingTask() == true) {

View File

@@ -201,6 +201,11 @@ void WavSoundFileLoader::restart(){
// Ogg Sound File Loader // Ogg Sound File Loader
// ======================================= // =======================================
OggSoundFileLoader::OggSoundFileLoader() {
vf = NULL;
f = NULL;
}
void OggSoundFileLoader::open(const string &path, SoundInfo *soundInfo){ void OggSoundFileLoader::open(const string &path, SoundInfo *soundInfo){
fileName = path; fileName = path;