Changeset - r9103:84d77f49b5d8
[Not reviewed]
master
0 2 0
rubidium - 16 years ago 2008-05-05 22:35:33
rubidium@openttd.org
(svn r12963) -Fix (r12960): loading some NewGRFs could cause an infinite loop.
2 files changed with 7 insertions and 3 deletions:
0 comments (0 inline, 0 general)
src/fileio.cpp
Show inline comments
 
@@ -45,7 +45,7 @@ static Fio _fio;
 
/* Get current position in file */
 
uint32 FioGetPos()
 
{
 
	return _fio.pos + (_fio.buffer - _fio.buffer_start) - FIO_BUFFER_SIZE;
 
	return _fio.pos + (_fio.buffer - _fio.buffer_end);
 
}
 

	
 
const char *FioGetFilename(uint8 slot)
 
@@ -92,7 +92,11 @@ byte FioReadByte()
 
{
 
	if (_fio.buffer == _fio.buffer_end) {
 
		_fio.buffer = _fio.buffer_start;
 
		_fio.pos += fread(_fio.buffer, 1, FIO_BUFFER_SIZE, _fio.cur_fh);
 
		size_t size = fread(_fio.buffer, 1, FIO_BUFFER_SIZE, _fio.cur_fh);
 
		_fio.pos += size;
 
		_fio.buffer_end = _fio.buffer_start + size;
 

	
 
		if (size == 0) return 0;
 
	}
 
	return *_fio.buffer++;
 
}
src/network/network_client.cpp
Show inline comments
 
@@ -595,7 +595,7 @@ DEF_CLIENT_RECEIVE_COMMAND(PACKET_SERVER
 

	
 
	if (maptype == MAP_PACKET_NORMAL) {
 
		// We are still receiving data, put it to the file
 
		if (fwrite(p->buffer + p->pos, 1, p->size - p->pos, file_pointer) != p->size - p->pos) {
 
		if (fwrite(p->buffer + p->pos, 1, p->size - p->pos, file_pointer) != (size_t)(p->size - p->pos)) {
 
			_switch_mode_errorstr = STR_NETWORK_ERR_SAVEGAMEERROR;
 
			return NETWORK_RECV_STATUS_SAVEGAME;
 
		}
0 comments (0 inline, 0 general)