[Scummvm-cvs-logs] SF.net SVN: scummvm:[39343] scummvm/trunk/engines/sci/engine
thebluegr at users.sourceforge.net
thebluegr at users.sourceforge.net
Wed Mar 11 23:50:06 CET 2009
Revision: 39343
http://scummvm.svn.sourceforge.net/scummvm/?rev=39343&view=rev
Author: thebluegr
Date: 2009-03-11 22:50:06 +0000 (Wed, 11 Mar 2009)
Log Message:
-----------
Fix heap corruption when assigning the save game directory
Modified Paths:
--------------
scummvm/trunk/engines/sci/engine/game.cpp
scummvm/trunk/engines/sci/engine/seg_manager.cpp
Modified: scummvm/trunk/engines/sci/engine/game.cpp
===================================================================
--- scummvm/trunk/engines/sci/engine/game.cpp 2009-03-11 21:56:54 UTC (rev 39342)
+++ scummvm/trunk/engines/sci/engine/game.cpp 2009-03-11 22:50:06 UTC (rev 39343)
@@ -525,8 +525,8 @@
SystemString *str = &s->sys_strings->strings[SYS_STRING_SAVEDIR];
strncpy((char *)str->value, path, str->max_size);
- str->value[str->max_size].segment = s->string_frag_segment; // Make sure to terminate
- str->value[str->max_size].offset &= 0xff00; // Make sure to terminate
+ str->value[str->max_size - 1].segment = s->string_frag_segment; // Make sure to terminate
+ str->value[str->max_size - 1].offset &= 0xff00; // Make sure to terminate
}
void internal_stringfrag_strncpy(EngineState *s, reg_t *dest, reg_t *src, int len);
Modified: scummvm/trunk/engines/sci/engine/seg_manager.cpp
===================================================================
--- scummvm/trunk/engines/sci/engine/seg_manager.cpp 2009-03-11 21:56:54 UTC (rev 39342)
+++ scummvm/trunk/engines/sci/engine/seg_manager.cpp 2009-03-11 22:50:06 UTC (rev 39343)
@@ -264,7 +264,6 @@
free(str->name);
str->name = NULL;
- // FIXME: this corrupts the heap for some reason
free(str->value);
str->value = NULL;
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
More information about the Scummvm-git-logs
mailing list