From: <ni...@us...> - 2009-07-27 16:25:06
|
Revision: 2674 http://desmume.svn.sourceforge.net/desmume/?rev=2674&view=rev Author: nitsuja Date: 2009-07-27 16:25:00 +0000 (Mon, 27 Jul 2009) Log Message: ----------- savestate date memory overwrite fix Modified Paths: -------------- trunk/desmume/src/saves.cpp Modified: trunk/desmume/src/saves.cpp =================================================================== --- trunk/desmume/src/saves.cpp 2009-07-27 15:15:00 UTC (rev 2673) +++ trunk/desmume/src/saves.cpp 2009-07-27 16:25:00 UTC (rev 2674) @@ -563,7 +563,8 @@ sprintf(filename+strlen(filename), ".ds%d", i); if( stat(filename,&sbuf) == -1 ) continue; savestates[i-1].exists = TRUE; - strncpy(savestates[i-1].date, format_time(sbuf.st_mtime),MAX_PATH); + strncpy(savestates[i-1].date, format_time(sbuf.st_mtime),40); + savestates[i-1].date[40-1] = '\0'; } return ; @@ -593,9 +594,15 @@ return; } - savestates[num].exists = TRUE; - if( stat(filename,&sbuf) == -1 ) return; - strncpy(savestates[num].date, format_time(sbuf.st_mtime),MAX_PATH); + if (num >= 0 && num < NB_STATES) + { + if (stat(filename,&sbuf) != -1) + { + savestates[num].exists = TRUE; + strncpy(savestates[num].date, format_time(sbuf.st_mtime),40); + savestates[num].date[40-1] = '\0'; + } + } } void loadstate_slot(int num) @@ -990,7 +997,7 @@ _MMU_write16<ARMCPU_ARM9>(0x04000304, _MMU_read16<ARMCPU_ARM9>(0x04000304)); // This should regenerate the graphics configuration - //zero 27-jul-09 : was formerly up to 7F but that wrote to dispfifo which is dumb (one of nitsuja's desynch bugs) + //zero 27-jul-09 : was formerly up to 7F but that wrote to dispfifo which is dumb (one of nitsuja's desynch bugs [that he found, not caused]) for (int i = REG_BASE_DISPA; i<=REG_BASE_DISPA + 0x66; i+=2) _MMU_write16<ARMCPU_ARM9>(i, _MMU_read16<ARMCPU_ARM9>(i)); for (int i = REG_BASE_DISPB; i<=REG_BASE_DISPB + 0x7F; i+=2) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |