]> git.mxchange.org Git - quix0rs-blobwars.git/blobdiff - src/CReplayData.cpp
Prevent a segmentation fault when using the -map option without specifying a map.
[quix0rs-blobwars.git] / src / CReplayData.cpp
old mode 100755 (executable)
new mode 100644 (file)
index 218fff1..51c1834
@@ -13,7 +13,7 @@ ReplayData::ReplayData()
        header.version = VERSION;
        header.release = RELEASE;
        
-       strcpy(filename, "");
+       filename[0] = 0;
 }
 
 ReplayData::~ReplayData()
@@ -22,7 +22,12 @@ ReplayData::~ReplayData()
        {
                save();
                rewind(fp);
-               fwrite(&header, sizeof(ReplayDataHeader), 1, fp);
+               int size = fwrite(&header, sizeof(ReplayDataHeader), 1, fp);
+               if (size != 1)
+               {
+                       printf("Error saving replay data: %s\n", strerror(errno));
+                       exit(1);
+               }
        }
        
        if (replayMode != REPLAY_MODE::NONE)
@@ -98,7 +103,15 @@ void ReplayData::setMode(REPLAY_MODE::TYPE replayMode)
                
                swapHeaderEndians();
                
-               fwrite(&header, sizeof(ReplayDataHeader), 1, fp);
+               int size = fwrite(&header, sizeof(ReplayDataHeader), 1, fp);
+               if (size != 1)
+               {
+                       printf("Error writing replay data header: %s\n", strerror(errno));
+                       replayMode = REPLAY_MODE::NONE;
+                       fclose(fp);
+                       fp = NULL;
+                       return;
+               }
                
                reset();
        }