diff options
| -rw-r--r-- | engines/sci/engine/game.cpp | 4 | ||||
| -rw-r--r-- | engines/sci/engine/seg_manager.cpp | 1 | 
2 files changed, 2 insertions, 3 deletions
| diff --git a/engines/sci/engine/game.cpp b/engines/sci/engine/game.cpp index 7fd940fd68..6f2cf4b008 100644 --- a/engines/sci/engine/game.cpp +++ b/engines/sci/engine/game.cpp @@ -525,8 +525,8 @@ void script_set_gamestate_save_dir(EngineState *s, const char *path) {  	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); diff --git a/engines/sci/engine/seg_manager.cpp b/engines/sci/engine/seg_manager.cpp index 81de171cb2..35297cb077 100644 --- a/engines/sci/engine/seg_manager.cpp +++ b/engines/sci/engine/seg_manager.cpp @@ -264,7 +264,6 @@ int SegManager::deallocate(int seg, bool recursive) {  				free(str->name);  				str->name = NULL; -				// FIXME: this corrupts the heap for some reason  				free(str->value);  				str->value = NULL; | 
