diff -up blobwars-2.00/src/CAudio.cpp.gcc7 blobwars-2.00/src/CAudio.cpp --- blobwars-2.00/src/CAudio.cpp.gcc7 2015-11-21 23:18:19.000000000 +0100 +++ blobwars-2.00/src/CAudio.cpp 2017-09-25 11:51:37.512362385 +0200 @@ -100,7 +100,7 @@ bool Audio::loadSound(int i, const char bool Audio::loadMusic(const char *filename) { - char tempPath[PATH_MAX]; + char tempPath[PATH_MAX+sizeof("music.mod")]; snprintf(tempPath, sizeof tempPath, "%smusic.mod", engine->userHomeDirectory); @@ -245,7 +245,7 @@ void Audio::playMusicOnce() bool Audio::loadGameOverMusic() { - char tempPath[PATH_MAX]; + char tempPath[PATH_MAX+sizeof("music.mod")]; snprintf(tempPath, sizeof tempPath, "%smusic.mod", engine->userHomeDirectory); diff -up blobwars-2.00/src/CConfig.cpp.gcc7 blobwars-2.00/src/CConfig.cpp --- blobwars-2.00/src/CConfig.cpp.gcc7 2015-11-21 23:18:19.000000000 +0100 +++ blobwars-2.00/src/CConfig.cpp 2017-09-25 11:55:38.639573268 +0200 @@ -88,7 +88,7 @@ void Config::doPause() bool Config::loadJoystickConfig() { - char filename[PATH_MAX]; + char filename[PATH_MAX+sizeof("joystick.cfg")]; snprintf(filename, sizeof filename, "%sjoystick.cfg", engine->userHomeDirectory); debug(("Loading joystick config from %s\n", filename)); @@ -114,7 +114,7 @@ bool Config::loadJoystickConfig() bool Config::saveJoystickConfig() { bool ret = true; - char filename[PATH_MAX]; + char filename[PATH_MAX+sizeof("joystick.cfg")]; snprintf(filename, sizeof filename, "%sjoystick.cfg", engine->userHomeDirectory); debug(("Saving joystick config to %s\n", filename)); @@ -140,7 +140,7 @@ bool Config::saveJoystickConfig() bool Config::loadKeyConfig() { - char filename[PATH_MAX]; + char filename[PATH_MAX+sizeof("keyboard.cfg")]; snprintf(filename, sizeof filename, "%skeyboard.cfg", engine->userHomeDirectory); debug(("Loading keyboard config from %s\n", filename)); @@ -169,7 +169,7 @@ bool Config::loadKeyConfig() bool Config::saveKeyConfig() { bool ret = true; - char filename[PATH_MAX]; + char filename[PATH_MAX+sizeof("keyboard.cfg")]; snprintf(filename, sizeof filename, "%skeyboard.cfg", engine->userHomeDirectory); debug(("Saving keyboard config to %s\n", filename)); diff -up blobwars-2.00/src/CEngine.cpp.gcc7 blobwars-2.00/src/CEngine.cpp --- blobwars-2.00/src/CEngine.cpp.gcc7 2015-11-21 23:18:19.000000000 +0100 +++ blobwars-2.00/src/CEngine.cpp 2017-09-25 12:01:22.494024229 +0200 @@ -413,7 +413,7 @@ bool Engine::unpack(const char *filename if ((fileType == PAK_MUSIC) || (fileType == PAK_FONT) || (fileType == PAK_TAGS)) { - char tempPath[PATH_MAX]; + char tempPath[PATH_MAX+sizeof("music.tags")]; FILE *fp = NULL; diff -up blobwars-2.00/src/init.cpp.gcc7 blobwars-2.00/src/init.cpp --- blobwars-2.00/src/init.cpp.gcc7 2015-11-21 23:18:19.000000000 +0100 +++ blobwars-2.00/src/init.cpp 2017-09-25 12:04:42.291547111 +0200 @@ -134,7 +134,7 @@ bool loadConfig() int release = 0; bool rtn = false; - char configPath[PATH_MAX]; + char configPath[PATH_MAX+sizeof("config")]; snprintf(configPath, sizeof configPath, "%sconfig", engine.userHomeDirectory); @@ -184,7 +184,7 @@ bool loadConfig() void saveConfig() { - char configPath[PATH_MAX]; + char configPath[PATH_MAX+sizeof("config")]; snprintf(configPath, sizeof configPath, "%sconfig", engine.userHomeDirectory); @@ -218,7 +218,7 @@ int initMedalService(void *data) graphics.showMedalMessage(-1, connectMessage); - char keyPath[PATH_MAX]; + char keyPath[PATH_MAX+sizeof("medalKey")]; char privateKey[20]; snprintf(keyPath, sizeof keyPath, "%smedalKey", engine.userHomeDirectory); @@ -460,7 +460,7 @@ atexit(); */ void cleanup() { - char tempPath[PATH_MAX]; + char tempPath[PATH_MAX+sizeof("music.mod")]; debug(("Cleaning Up...\n")); diff -up blobwars-2.00/src/loadSave.cpp.gcc7 blobwars-2.00/src/loadSave.cpp --- blobwars-2.00/src/loadSave.cpp.gcc7 2015-11-21 23:18:19.000000000 +0100 +++ blobwars-2.00/src/loadSave.cpp 2017-09-25 12:19:53.575812306 +0200 @@ -23,7 +23,7 @@ Foundation, Inc., 59 Temple Place - Suit void initSaveSlots() { - char filename[PATH_MAX]; + char filename[PATH_MAX+sizeof("save.dat")+12]; char string[100]; struct stat fileInfo; int modTime = 0; @@ -83,7 +83,7 @@ bool loadGame(int slot) game.clear(); SDL_Delay(500); - char filename[PATH_MAX]; + char filename[PATH_MAX+sizeof("save.dat")+16]; char line[1024]; char string[2][1024]; @@ -244,7 +244,7 @@ int confirmSave() engine.setWidgetVariable("contyes", &quitYes); engine.setWidgetVariable("contno", &quitNo); - char widgetName[10]; + char widgetName[4+11+1]; widgetName[0] = 0; for (int i = 0 ; i < 5 ; i++) @@ -329,7 +329,7 @@ int confirmSave() void saveGame() { - char message[256]; + char message[PATH_MAX+sizeof("Saving Game to Save Slot #. Please Wait...")+27]; SDL_FillRect(graphics.screen, NULL, graphics.black); graphics.updateScreen(); @@ -346,7 +346,7 @@ void saveGame() graphics.drawString(message, 320, 220, true, graphics.screen); graphics.updateScreen(); - char filename[PATH_MAX]; + char filename[PATH_MAX+sizeof("save.dat")+13]; FILE *fp;