diff options
| author | Paul Gilbert | 2011-07-03 15:41:07 +1000 | 
|---|---|---|
| committer | Paul Gilbert | 2011-07-03 15:41:07 +1000 | 
| commit | d53142d95e793861d2891f8a7d16ac11b9b94126 (patch) | |
| tree | d01ab4b23f3e347efb1f8d3d1e8812293aea9b09 | |
| parent | 900e8cbf5b95ceea36c44296bc0de12e32687745 (diff) | |
| download | scummvm-rg350-d53142d95e793861d2891f8a7d16ac11b9b94126.tar.gz scummvm-rg350-d53142d95e793861d2891f8a7d16ac11b9b94126.tar.bz2 scummvm-rg350-d53142d95e793861d2891f8a7d16ac11b9b94126.zip | |
CGE: Fixed code using memory overruns to do duplication
| -rw-r--r-- | engines/cge/bitmap.cpp | 5 | 
1 files changed, 5 insertions, 0 deletions
| diff --git a/engines/cge/bitmap.cpp b/engines/cge/bitmap.cpp index c94b8503cf..833d0f1f1b 100644 --- a/engines/cge/bitmap.cpp +++ b/engines/cge/bitmap.cpp @@ -117,6 +117,11 @@ Bitmap::Bitmap(uint16 w, uint16 h, uint8 fill)  	HideDesc *b = (HideDesc *)(v + 4 * psiz);  	b->skip = (SCR_WID - _w) >> 2;  	b->hide = _w >> 2; + +	// Replicate across the entire table +	for (HideDesc *hdP = b + 1; hdP < (b + _h); ++hdP) +		*hdP = *b; +	  	memcpy(b + 1, b, (_h - 1) * sizeof(*b));         // tricky fill entire table  	b->skip = 0;                                    // fix the first entry  	_v = v; | 
