[Scummvm-cvs-logs] CVS: scummvm Makefile,1.23,1.24 actor.cpp,1.34,1.35 debug.cpp,1.23,1.24 gfx.cpp,1.50,1.51 gui.cpp,1.10,1.11 insane.cpp,1.6,1.7 object.cpp,1.38,1.39 resource.cpp,1.49,1.50 script.cpp,1.32,1.33 script_v1.cpp,1.42,1.43 scumm.h,1.77,1.78 scummsys.h,1.22,1.23 scummvm.cpp,1.73,1.74 sdl.cpp,1.40,1.41 sys.cpp,1.7,1.8 windows.cpp,1.28,1.29

James Brown ender at users.sourceforge.net
Sun Mar 10 09:39:09 CET 2002


Update of /cvsroot/scummvm/scummvm
In directory usw-pr-cvs1:/tmp/cvs-serv28733

Modified Files:
	Makefile actor.cpp debug.cpp gfx.cpp gui.cpp insane.cpp 
	object.cpp resource.cpp script.cpp script_v1.cpp scumm.h 
	scummsys.h scummvm.cpp sdl.cpp sys.cpp windows.cpp 
Log Message:
Apply some patches by syke to prevent buffer overruns, etc.



Index: Makefile
===================================================================
RCS file: /cvsroot/scummvm/scummvm/Makefile,v
retrieving revision 1.23
retrieving revision 1.24
diff -C2 -d -r1.23 -r1.24
*** Makefile	6 Mar 2002 19:58:06 -0000	1.23
--- Makefile	10 Mar 2002 17:33:02 -0000	1.24
***************
*** 2,6 ****
  
  CC      = gcc
! CFLAGS  = -g -Wno-multichar
  DEFINES = -DUNIX -DUSE_ADLIB 
  LDFLAGS :=
--- 2,6 ----
  
  CC      = gcc
! CFLAGS  = -g -Wall -Wstrict-prototypes -Wno-long-long -Wno-multichar 
  DEFINES = -DUNIX -DUSE_ADLIB 
  LDFLAGS :=

Index: actor.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/actor.cpp,v
retrieving revision 1.34
retrieving revision 1.35
diff -C2 -d -r1.34 -r1.35
*** actor.cpp	9 Mar 2002 00:56:21 -0000	1.34
--- actor.cpp	10 Mar 2002 17:33:02 -0000	1.35
***************
*** 978,982 ****
  	_msgPtrToAdd = charset._buffer;
  	_messagePtr = addMessageToStack(_messagePtr);
! 	assert(_msgPtrToAdd - charset._buffer < sizeof(charset._buffer));
  	
  	if (_actorToPrintStrFor==0xFF) {
--- 978,982 ----
  	_msgPtrToAdd = charset._buffer;
  	_messagePtr = addMessageToStack(_messagePtr);
! 	assert((int)(_msgPtrToAdd - charset._buffer) < (int)(sizeof(charset._buffer)));
  	
  	if (_actorToPrintStrFor==0xFF) {

Index: debug.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/debug.cpp,v
retrieving revision 1.23
retrieving revision 1.24
diff -C2 -d -r1.23 -r1.24
*** debug.cpp	9 Mar 2002 12:32:19 -0000	1.23
--- debug.cpp	10 Mar 2002 17:33:02 -0000	1.24
***************
*** 111,115 ****
  	case CMD_DUMPBOX:
  		{
! 			int num, i = 0, rows = 0; 
  			BoxCoords box;		
  			byte *boxm = _s->getBoxMatrixBaseAddr();
--- 111,115 ----
  	case CMD_DUMPBOX:
  		{
! 			int num, i = 0;
  			BoxCoords box;		
  			byte *boxm = _s->getBoxMatrixBaseAddr();
***************
*** 207,215 ****
  	{ "s", 1, CMD_SCRIPTS },
  	{ "r", 1, CMD_LOAD_ROOM },
!     { "b", 1, CMD_DUMPBOX},
  	{ "v", 1, CMD_VAR},
  	{ "w", 1, CMD_WATCH},
  	{ "e", 1, CMD_EXIT },
! 	{ 0, 0, 0 },
  };
  
--- 207,215 ----
  	{ "s", 1, CMD_SCRIPTS },
  	{ "r", 1, CMD_LOAD_ROOM },
! 	{ "b", 1, CMD_DUMPBOX},
  	{ "v", 1, CMD_VAR},
  	{ "w", 1, CMD_WATCH},
  	{ "e", 1, CMD_EXIT },
! 	{ "" , 0, 0 }
  };
  

Index: gfx.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/gfx.cpp,v
retrieving revision 1.50
retrieving revision 1.51
diff -C2 -d -r1.50 -r1.51
*** gfx.cpp	9 Mar 2002 15:07:31 -0000	1.50
--- gfx.cpp	10 Mar 2002 17:33:02 -0000	1.51
***************
*** 941,945 ****
  	int s = _screenStartStrip + start;
  
! 	assert(s>=0 && s<sizeof(gfxUsageBits)/sizeof(gfxUsageBits[0]));
  
  	_curVirtScreen = &virtscr[0];
--- 941,945 ----
  	int s = _screenStartStrip + start;
  
! 	assert(s>=0 && (size_t)s<sizeof(gfxUsageBits)/sizeof(gfxUsageBits[0]));
  
  	_curVirtScreen = &virtscr[0];

Index: gui.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/gui.cpp,v
retrieving revision 1.10
retrieving revision 1.11
diff -C2 -d -r1.10 -r1.11
*** gui.cpp	8 Mar 2002 08:42:10 -0000	1.10
--- gui.cpp	10 Mar 2002 17:33:02 -0000	1.11
***************
*** 34,38 ****
  		end=start;
  
! 	for (i=0; i<sizeof(_widgets) / sizeof(_widgets[0]); i++) {
  		const GuiWidget *w = _widgets[i];
  		if (w) {
--- 34,38 ----
  		end=start;
  
! 	for (i=0; i<(int)(sizeof(_widgets) / sizeof(_widgets[0])); i++) {
  		const GuiWidget *w = _widgets[i];
  		if (w) {

Index: insane.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/insane.cpp,v
retrieving revision 1.6
retrieving revision 1.7
diff -C2 -d -r1.6 -r1.7
*** insane.cpp	10 Mar 2002 13:50:05 -0000	1.6
--- insane.cpp	10 Mar 2002 17:33:02 -0000	1.7
***************
*** 595,599 ****
  
  
! 	assert(idx*255 + 254 < sizeof(maketable_bytes)/2);
  
  
--- 595,599 ----
  
  
! 	assert(idx*255 + 254 < (int)(sizeof(maketable_bytes)/2));
  
  
***************
*** 619,623 ****
  	int src_pitch;
  
! 	byte *src = cd->src, *curbuf;
  
  	uint size;
--- 619,623 ----
  	int src_pitch;
  
! 	byte *curbuf;
  
  	uint size;

Index: object.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/object.cpp,v
retrieving revision 1.38
retrieving revision 1.39
diff -C2 -d -r1.38 -r1.39
*** object.cpp	8 Mar 2002 23:53:14 -0000	1.38
--- object.cpp	10 Mar 2002 17:33:02 -0000	1.39
***************
*** 655,659 ****
  void Scumm::addObjectToDrawQue(int object) {
  	_drawObjectQue[_drawObjectQueNr++] = object;
! 	if (_drawObjectQueNr > sizeof(_drawObjectQue)/sizeof(_drawObjectQue[0]))
  		error("Draw Object Que overflow");
  }
--- 655,659 ----
  void Scumm::addObjectToDrawQue(int object) {
  	_drawObjectQue[_drawObjectQueNr++] = object;
! 	if ((unsigned int)_drawObjectQueNr > sizeof(_drawObjectQue)/sizeof(_drawObjectQue[0]))
  		error("Draw Object Que overflow");
  }

Index: resource.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/resource.cpp,v
retrieving revision 1.49
retrieving revision 1.50
diff -C2 -d -r1.49 -r1.50
*** resource.cpp	9 Mar 2002 13:45:00 -0000	1.49
--- resource.cpp	10 Mar 2002 17:33:02 -0000	1.50
***************
*** 56,60 ****
  #endif
  		
! 		if (room_offs == 0xFFFFFFFF)
  			break;
  
--- 56,60 ----
  #endif
  		
! 		if (room_offs == (int)0xFFFFFFFF)
  			break;
  
***************
*** 496,500 ****
  void Scumm::allocResTypeData(int id, uint32 tag, int num, const char *name, int mode) {
  	debug(9, "allocResTypeData(%d,%x,%d,%s,%d)",id,FROM_LE_32(tag),num,name,mode);
! 	assert(id>=0 && id<sizeof(res.mode)/sizeof(res.mode[0]));
  
  	if (num>=2000) {
--- 496,500 ----
  void Scumm::allocResTypeData(int id, uint32 tag, int num, const char *name, int mode) {
  	debug(9, "allocResTypeData(%d,%x,%d,%s,%d)",id,FROM_LE_32(tag),num,name,mode);
! 	assert(id>=0 && id<(int)(sizeof(res.mode)/sizeof(res.mode[0])));
  
  	if (num>=2000) {
***************
*** 1100,1104 ****
  		}
  	
! 	printf("Total allocated size=%d, locked=%d(%d)\n", _allocatedSize, lockedSize, lockedNum);
  }
  
--- 1100,1104 ----
  		}
  	
! 	printf("Total allocated size=%ld, locked=%ld(%ld)\n", _allocatedSize, lockedSize, lockedNum);
  }
  

Index: script.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/script.cpp,v
retrieving revision 1.32
retrieving revision 1.33
diff -C2 -d -r1.32 -r1.33
*** script.cpp	9 Mar 2002 00:56:21 -0000	1.32
--- script.cpp	10 Mar 2002 17:33:02 -0000	1.33
***************
*** 733,742 ****
  
  void Scumm::push(int a) {
! 	assert(_scummStackPos >=0 && _scummStackPos <= ARRAYSIZE(_scummStack));
  	_scummStack[_scummStackPos++] = a;	
  }
  
  int Scumm::pop() {
! 	assert(_scummStackPos >0 && _scummStackPos <= ARRAYSIZE(_scummStack));
  	return _scummStack[--_scummStackPos];
  }
--- 733,742 ----
  
  void Scumm::push(int a) {
! 	assert(_scummStackPos >=0 && (unsigned int)_scummStackPos <= ARRAYSIZE(_scummStack));
  	_scummStack[_scummStackPos++] = a;	
  }
  
  int Scumm::pop() {
! 	assert(_scummStackPos >0 && (unsigned int)_scummStackPos <= ARRAYSIZE(_scummStack));
  	return _scummStack[--_scummStackPos];
  }

Index: script_v1.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/script_v1.cpp,v
retrieving revision 1.42
retrieving revision 1.43
diff -C2 -d -r1.42 -r1.43
*** script_v1.cpp	9 Mar 2002 12:39:13 -0000	1.42
--- script_v1.cpp	10 Mar 2002 17:33:02 -0000	1.43
***************
*** 1036,1040 ****
          if (_features & GF_SMALL_HEADER) {
                  int temp = getVarOrDirectWord(0x40);
!                 int room = getVarOrDirectWord(0x20);
   
                  idx = getObjectIndex(obj);
--- 1036,1040 ----
          if (_features & GF_SMALL_HEADER) {
                  int temp = getVarOrDirectWord(0x40);
!                 getVarOrDirectWord(0x20);	// Room
   
                  idx = getObjectIndex(obj);
***************
*** 1851,1855 ****
  		a = getVarOrDirectByte(0x80);
  		s = buf;
! 		while (*s++=fetchScriptByte());
  		warning("roomops:13 save-string(%d,\"%s\") not implemented", a, buf);
  		break;
--- 1851,1855 ----
  		a = getVarOrDirectByte(0x80);
  		s = buf;
! 		while ((*s++=fetchScriptByte()));
  		warning("roomops:13 save-string(%d,\"%s\") not implemented", a, buf);
  		break;
***************
*** 1859,1863 ****
  		a = getVarOrDirectByte(0x80);
  		s = buf;
! 		while (*s++=fetchScriptByte());
  		warning("roomops:14 load-string(%d,\"%s\") not implemented", a, buf);
  		break;
--- 1859,1863 ----
  		a = getVarOrDirectByte(0x80);
  		s = buf;
! 		while ((*s++=fetchScriptByte()));
  		warning("roomops:14 load-string(%d,\"%s\") not implemented", a, buf);
  		break;
***************
*** 2365,2369 ****
  int Scumm::getWordVararg(int16 *ptr) {
  	int i;
! 	for (i=0; i<16; i++)
  		ptr[i] = 0;
  
--- 2365,2370 ----
  int Scumm::getWordVararg(int16 *ptr) {
  	int i;
! 
! 	for (i=0; i<15; i++)
  		ptr[i] = 0;
  

Index: scumm.h
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm.h,v
retrieving revision 1.77
retrieving revision 1.78
diff -C2 -d -r1.77 -r1.78
*** scumm.h	10 Mar 2002 13:53:14 -0000	1.77
--- scumm.h	10 Mar 2002 17:33:02 -0000	1.78
***************
*** 100,105 ****
  
  
! #pragma START_PACK_STRUCTS
! 	
  #define SIZEOF_BOX 20
  struct Box { /* file format */
--- 100,107 ----
  
  
! #if !defined(__GNUC__)
! 	#pragma START_PACK_STRUCTS
! #endif	
! 
  #define SIZEOF_BOX 20
  struct Box { /* file format */
***************
*** 220,224 ****
  	} GCC_PACK;
  } GCC_PACK;
! #pragma END_PACK_STRUCTS
  
  struct AdjustBoxResult {
--- 222,229 ----
  	} GCC_PACK;
  } GCC_PACK;
! 
! #if !defined(__GNUC__)
! 	#pragma END_PACK_STRUCTS
! #endif
  
  struct AdjustBoxResult {
***************
*** 362,366 ****
  	rtObjectName = 16,
  	rtLast = 16,
! 	rtNumTypes = 17,
  };
  
--- 367,371 ----
  	rtObjectName = 16,
  	rtLast = 16,
! 	rtNumTypes = 17
  };
  
***************
*** 376,380 ****
  	CM_NORMAL = 1,
  	CM_FOLLOW_ACTOR = 2,
! 	CM_PANNING = 3,
  };
  
--- 381,385 ----
  	CM_NORMAL = 1,
  	CM_FOLLOW_ACTOR = 2,
! 	CM_PANNING = 3
  };
  
***************
*** 396,400 ****
  	MF_IN_LEG = 2,
  	MF_TURN = 4,
! 	MF_LAST_LEG = 8,
  };
  
--- 401,405 ----
  	MF_IN_LEG = 2,
  	MF_TURN = 4,
! 	MF_LAST_LEG = 8
  };
  
***************
*** 746,750 ****
  		dbAllowMaskOr = 1,
  		dbDrawMaskOnBoth = 2,
! 		dbClear = 4,
  	};
  };
--- 751,755 ----
  		dbAllowMaskOr = 1,
  		dbDrawMaskOnBoth = 2,
! 		dbClear = 4
  	};
  };
***************
*** 793,797 ****
  	GID_LOOM = 10,
  	GID_FT = 11,
! 	GID_DIG = 12,
  };
  
--- 798,802 ----
  	GID_LOOM = 10,
  	GID_FT = 11,
! 	GID_DIG = 12
  };
  
***************
*** 815,819 ****
  	GF_OLD256 = 512,
  	GF_AUDIOTRACKS = 1024,
! 	GF_NO_SCALLING = 2048,
  };
  
--- 820,824 ----
  	GF_OLD256 = 512,
  	GF_AUDIOTRACKS = 1024,
! 	GF_NO_SCALLING = 2048
  };
  
***************
*** 1942,1946 ****
  		foCodeHeader = 1,
  		foImageHeader = 2,
! 		foCheckAlreadyLoaded = 4,
  	};
  
--- 1947,1951 ----
  		foCodeHeader = 1,
  		foImageHeader = 2,
! 		foCheckAlreadyLoaded = 4
  	};
  
***************
*** 2171,2175 ****
  	AKC_JumpG  = 0xC094,
  	AKC_JumpGE  = 0xC095,
! 	AKC_ClearFlag  = 0xC09F,
  };
  
--- 2176,2180 ----
  	AKC_JumpG  = 0xC094,
  	AKC_JumpGE  = 0xC095,
! 	AKC_ClearFlag  = 0xC09F
  };
  

Index: scummsys.h
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scummsys.h,v
retrieving revision 1.22
retrieving revision 1.23
diff -C2 -d -r1.22 -r1.23
*** scummsys.h	10 Mar 2002 14:46:07 -0000	1.22
--- scummsys.h	10 Mar 2002 17:33:03 -0000	1.23
***************
*** 237,265 ****
  
  #if defined(SCUMM_NEED_ALIGNMENT)
! 	uint FORCEINLINE READ_LE_UINT16(void *ptr) {
  		return (((byte*)ptr)[1]<<8)|((byte*)ptr)[0];
  	}
  #else
! 	uint FORCEINLINE READ_LE_UINT16(void *ptr) {
  		return *(uint16*)(ptr);
  	}
  #endif
  
! uint FORCEINLINE READ_BE_UINT16(void *ptr) {
  	return (((byte*)ptr)[0]<<8)|((byte*)ptr)[1];
  }
  
  #if defined(SCUMM_NEED_ALIGNMENT)
! 	uint32 FORCEINLINE READ_LE_UINT32(void *ptr) {
  		byte *b = (byte*)ptr;
  		return (b[3]<<24)+(b[2]<<16)+(b[1]<<8)+(b[0]);
  	}
  #else
! 	uint32 FORCEINLINE READ_LE_UINT32(void *ptr) {
  		return *(uint32*)(ptr);
  	}
  #endif
  
! uint32 FORCEINLINE READ_BE_UINT32(void *ptr) {
  	byte *b = (byte*)ptr;
  	return (b[0]<<24)+(b[1]<<16)+(b[2]<<8)+(b[3]);
--- 237,265 ----
  
  #if defined(SCUMM_NEED_ALIGNMENT)
! 	FORCEINLINE uint READ_LE_UINT16(void *ptr) {
  		return (((byte*)ptr)[1]<<8)|((byte*)ptr)[0];
  	}
  #else
! 	FORCEINLINE uint READ_LE_UINT16(void *ptr) {
  		return *(uint16*)(ptr);
  	}
  #endif
  
! FORCEINLINE uint READ_BE_UINT16(void *ptr) {
  	return (((byte*)ptr)[0]<<8)|((byte*)ptr)[1];
  }
  
  #if defined(SCUMM_NEED_ALIGNMENT)
! 	FORCEINLINE uint32 READ_LE_UINT32(void *ptr) {
  		byte *b = (byte*)ptr;
  		return (b[3]<<24)+(b[2]<<16)+(b[1]<<8)+(b[0]);
  	}
  #else
! 	FORCEINLINE uint32 READ_LE_UINT32(void *ptr) {
  		return *(uint32*)(ptr);
  	}
  #endif
  
! FORCEINLINE uint32 READ_BE_UINT32(void *ptr) {
  	byte *b = (byte*)ptr;
  	return (b[0]<<24)+(b[1]<<16)+(b[2]<<8)+(b[3]);

Index: scummvm.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scummvm.cpp,v
retrieving revision 1.73
retrieving revision 1.74
diff -C2 -d -r1.73 -r1.74
*** scummvm.cpp	10 Mar 2002 07:48:01 -0000	1.73
--- scummvm.cpp	10 Mar 2002 17:33:03 -0000	1.74
***************
*** 856,860 ****
  	if(_features & GF_SMALL_HEADER) {
  		while( (ptr = findResourceSmall(MKID('LSCR'), searchptr)) != NULL ) {
! 			int id;
  			ptr += _resourceHeaderSize; /* skip tag & size */
  	#ifdef DUMP_SCRIPTS
--- 856,860 ----
  	if(_features & GF_SMALL_HEADER) {
  		while( (ptr = findResourceSmall(MKID('LSCR'), searchptr)) != NULL ) {
! 			int id = 0;
  			ptr += _resourceHeaderSize; /* skip tag & size */
  	#ifdef DUMP_SCRIPTS
***************
*** 871,875 ****
  	} else {
                  while( (ptr = findResource(MKID('LSCR'), searchptr)) != NULL ) {
!                         int id;
  
                          ptr += _resourceHeaderSize; /* skip tag & size */
--- 871,875 ----
  	} else {
                  while( (ptr = findResource(MKID('LSCR'), searchptr)) != NULL ) {
!                         int id = 0;
  
                          ptr += _resourceHeaderSize; /* skip tag & size */

Index: sdl.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/sdl.cpp,v
retrieving revision 1.40
retrieving revision 1.41
diff -C2 -d -r1.40 -r1.41
*** sdl.cpp	10 Mar 2002 08:09:44 -0000	1.40
--- sdl.cpp	10 Mar 2002 17:33:03 -0000	1.41
***************
*** 659,664 ****
  }
  
- static uint32 midi_counter;
- 
  void fill_sound(void *userdata, Uint8 *stream, int len) {
  	scumm.mixWaves((int16*)stream, len>>1);
--- 659,662 ----

Index: sys.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/sys.cpp,v
retrieving revision 1.7
retrieving revision 1.8
diff -C2 -d -r1.7 -r1.8
*** sys.cpp	9 Mar 2002 13:51:37 -0000	1.7
--- sys.cpp	10 Mar 2002 17:33:03 -0000	1.8
***************
*** 52,56 ****
  
  bool Scumm::fileEof(void *file) {
- 	FILE *a = (FILE*)file;
  	return feof((FILE*)file) != 0;
  }
--- 52,55 ----

Index: windows.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/windows.cpp,v
retrieving revision 1.28
retrieving revision 1.29
diff -C2 -d -r1.28 -r1.29
*** windows.cpp	6 Mar 2002 12:24:56 -0000	1.28
--- windows.cpp	10 Mar 2002 17:33:04 -0000	1.29
***************
*** 508,514 ****
  
  	while (1) {
  
  		if (!snd_driv.wave_based()) {
- 			cur = GetTickCount();
  			while (time < cur) {
  				sound.on_timer();
--- 508,514 ----
  
  	while (1) {
+ 		cur = GetTickCount();
  
  		if (!snd_driv.wave_based()) {
  			while (time < cur) {
  				sound.on_timer();





More information about the Scummvm-git-logs mailing list