[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