From: <rog...@us...> - 2012-08-24 23:09:14
|
Revision: 4378 http://desmume.svn.sourceforge.net/desmume/?rev=4378&view=rev Author: rogerman Date: 2012-08-24 23:09:08 +0000 (Fri, 24 Aug 2012) Log Message: ----------- movie.cpp: - Fix a buffer overrun bug by disabling reading the ROM checksum in .dsm files for now. (Reading the checksum doesn't work correctly anyways, and nothing currently uses it in practice.) Modified Paths: -------------- trunk/desmume/src/movie.cpp Modified: trunk/desmume/src/movie.cpp =================================================================== --- trunk/desmume/src/movie.cpp 2012-08-24 23:04:42 UTC (rev 4377) +++ trunk/desmume/src/movie.cpp 2012-08-24 23:09:08 UTC (rev 4378) @@ -224,8 +224,16 @@ installInt(val,rerecordCount); else if(key == "romFilename") romFilename = val; - else if(key == "romChecksum") - StringToBytes(val,&romChecksum,MD5DATA::size); + else if(key == "romChecksum") { + // TODO: The current implementation of reading the checksum doesn't work correctly, and can + // cause crashes when the MovieData object is deallocated. (This is caused by StringToBytes() + // overrunning romChecksum into romSerial, making romSerial undefined.) Set romChecksum to + // some dummy value for now to prevent crashing. This is okay, since romChecksum isn't actually + // used in practice at this time. - rogerman, 2012/08/24 + //StringToBytes(val,&romChecksum,MD5DATA::size); + + romChecksum = 0; + } else if(key == "romSerial") romSerial = val; else if(key == "guid") This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |