[Scummvm-cvs-logs] scummvm master -> 2eddd72fbf0a482319e4790dc9eb8cd220ae05ec

urukgit urukgit at users.noreply.github.com
Wed Aug 13 20:02:06 CEST 2014


This automated email contains information about 12 new commits which have been
pushed to the 'scummvm' repo located at https://github.com/scummvm/scummvm .

Summary:
528ed79575 CGE2: Make impossible to dereference nullptr in sndDigiStart().
3b342a21c6 CGE2: Eliminate inferred misuse of enums in Sprite::labVal().
3e8041d54b CGE2: Fix comparing _spr->file against null in runCommand().
45e8078dab CGE2: Don't allow Sprite::step() to dereference nullptr-s.
8e7279f5ac CGE2: Fix possible string overflow in setEye().
8b1ffab95b CGE2: Fix possible string overflow in Bitmap's constructor.
8e22ef9b6d CGE2: Fix possible string overflow in Hero::expand().
fecabc039e CGE2: Initialize every member in Talk's every constructor.
277f844f09 CGE2: Initialize _maxDist in Hero's constructor.
547ad696f2 CGE2: Initialize _h and _w in every constuctor of Bitmap.
e52c14b8d9 CGE2: Remove unused variable from System.
2eddd72fbf CGE2: Initialize _startGameSlot.


Commit: 528ed79575d9086bc61f3f9507567f38b1e05c9b
    https://github.com/scummvm/scummvm/commit/528ed79575d9086bc61f3f9507567f38b1e05c9b
Author: uruk (koppirnyo at gmail.com)
Date: 2014-08-13T17:30:40+02:00

Commit Message:
CGE2: Make impossible to dereference nullptr in sndDigiStart().

Changed paths:
    engines/cge2/sound.cpp



diff --git a/engines/cge2/sound.cpp b/engines/cge2/sound.cpp
index c34eb00..a3accdf 100644
--- a/engines/cge2/sound.cpp
+++ b/engines/cge2/sound.cpp
@@ -99,7 +99,7 @@ void Sound::sndDigiStart(SmpInfo *PSmpInfo, Audio::Mixer::SoundType soundType) {
 		handle = &_speechHandle;
 		break;
 	default:
-		break;
+		error("Wrong sound type passed to sndDigiStart()");
 	}
 
 	// Start the new sound


Commit: 3b342a21c61010698e6b4829ed80857f06904ad9
    https://github.com/scummvm/scummvm/commit/3b342a21c61010698e6b4829ed80857f06904ad9
Author: uruk (koppirnyo at gmail.com)
Date: 2014-08-13T17:39:09+02:00

Commit Message:
CGE2: Eliminate inferred misuse of enums in Sprite::labVal().

Changed paths:
    engines/cge2/vga13h.cpp



diff --git a/engines/cge2/vga13h.cpp b/engines/cge2/vga13h.cpp
index 3308831..9141f42 100644
--- a/engines/cge2/vga13h.cpp
+++ b/engines/cge2/vga13h.cpp
@@ -252,7 +252,7 @@ int Sprite::labVal(Action snq, int lab) {
 				error("Bad SPR [%s]", tmpStr);
 
 			int cnt = 0;
-			int section = kIdPhase;
+			ID section = kIdPhase;
 			ID id;
 			Common::String line;
 
@@ -267,7 +267,7 @@ int Sprite::labVal(Action snq, int lab) {
 				p = _vm->token(tmpStr);
 
 				if (*p == '@') {
-					if (section == snq && atoi(p + 1) == lab)
+					if ((int)section == (int)snq && atoi(p + 1) == lab)
 						lv = cnt;
 				} else {
 					id = _vm->ident(p);
@@ -280,7 +280,7 @@ int Sprite::labVal(Action snq, int lab) {
 						section = id;
 						break;
 					default:
-						if (id < 0 && section == snq)
+						if (id < 0 && (int)section == (int)snq)
 							++cnt;
 						break;
 					}


Commit: 3e8041d54bc87b5dd8eae5e260e1fe1985ea1dd4
    https://github.com/scummvm/scummvm/commit/3e8041d54bc87b5dd8eae5e260e1fe1985ea1dd4
Author: uruk (koppirnyo at gmail.com)
Date: 2014-08-13T17:43:52+02:00

Commit Message:
CGE2: Fix comparing _spr->file against null in runCommand().

Changed paths:
    engines/cge2/snail.cpp



diff --git a/engines/cge2/snail.cpp b/engines/cge2/snail.cpp
index 2cd5aca..0bf6383 100644
--- a/engines/cge2/snail.cpp
+++ b/engines/cge2/snail.cpp
@@ -103,7 +103,7 @@ void CommandHandler::runCommand() {
 			spr = (tailCmd._ref < 0) ? ((Sprite *)tailCmd._spritePtr) : _vm->locate(tailCmd._ref);
 
 		Common::String sprStr;
-		if (spr && spr->_file && (tailCmd._commandType != kCmdGhost))
+		if (spr && *spr->_file && (tailCmd._commandType != kCmdGhost))
 			// In case of kCmdGhost _spritePtr stores a pointer to a Bitmap, not to a Sprite...
 			sprStr = Common::String(spr->_file);
 		else


Commit: 45e8078dab1be71a9ef5d125fa80ff660aa0cd5c
    https://github.com/scummvm/scummvm/commit/45e8078dab1be71a9ef5d125fa80ff660aa0cd5c
Author: uruk (koppirnyo at gmail.com)
Date: 2014-08-13T17:54:35+02:00

Commit Message:
CGE2: Don't allow Sprite::step() to dereference nullptr-s.

Changed paths:
    engines/cge2/vga13h.cpp



diff --git a/engines/cge2/vga13h.cpp b/engines/cge2/vga13h.cpp
index 9141f42..db96682 100644
--- a/engines/cge2/vga13h.cpp
+++ b/engines/cge2/vga13h.cpp
@@ -516,7 +516,7 @@ void Sprite::step(int nr) {
 	if (nr >= 0)
 		_seqPtr = nr;
 
-	if (_ext) {
+	if (_ext && _ext->_seq) {
 		V3D p = _pos3D;
 		Seq *seq = nullptr;
 
@@ -556,13 +556,15 @@ void Sprite::step(int nr) {
 			gotoxyz(p);
 		} else {
 			seq = _ext->_seq + _seqPtr;
-			if (seq->_dz == 127 && seq->_dx != 0) {
-				_vm->_commandHandlerTurbo->addCommand(kCmdSound, -1, 256 * seq->_dy + seq->_dx, this);
-			} else {
-				p._x += seq->_dx;
-				p._y += seq->_dy;
-				p._z += seq->_dz;
-				gotoxyz(p);
+			if (seq) {
+				if (seq->_dz == 127 && seq->_dx != 0) {
+					_vm->_commandHandlerTurbo->addCommand(kCmdSound, -1, 256 * seq->_dy + seq->_dx, this);
+				} else {
+					p._x += seq->_dx;
+					p._y += seq->_dy;
+					p._z += seq->_dz;
+					gotoxyz(p);
+				}
 			}
 		}
 		if (seq && (seq->_dly >= 0))


Commit: 8e7279f5ac0ced6a0ff458cbed7a54b5f547ab66
    https://github.com/scummvm/scummvm/commit/8e7279f5ac0ced6a0ff458cbed7a54b5f547ab66
Author: uruk (koppirnyo at gmail.com)
Date: 2014-08-13T18:18:26+02:00

Commit Message:
CGE2: Fix possible string overflow in setEye().

Changed paths:
    engines/cge2/cge2_main.cpp



diff --git a/engines/cge2/cge2_main.cpp b/engines/cge2/cge2_main.cpp
index 7c4a111..328af08 100644
--- a/engines/cge2/cge2_main.cpp
+++ b/engines/cge2/cge2_main.cpp
@@ -777,11 +777,12 @@ void CGE2Engine::setEye(const V2D& e2, int z) {
 }
 
 void CGE2Engine::setEye(const char *s) {
-	char tempStr[kLineMax];
+	char *tempStr = new char[strlen(s) + 1];
 	strcpy(tempStr, s);
 	_eye->_x = atoi(token(tempStr));
 	_eye->_y = atoi(token(nullptr));
 	_eye->_z = atoi(token(nullptr));
+	delete[] tempStr;
 }
 
 int CGE2Engine::newRandom(int range) {


Commit: 8b1ffab95bd1055bc73e3a0df0a59d994d5acd63
    https://github.com/scummvm/scummvm/commit/8b1ffab95bd1055bc73e3a0df0a59d994d5acd63
Author: uruk (koppirnyo at gmail.com)
Date: 2014-08-13T19:40:15+02:00

Commit Message:
CGE2: Fix possible string overflow in Bitmap's constructor.

Changed paths:
    engines/cge2/bitmap.cpp



diff --git a/engines/cge2/bitmap.cpp b/engines/cge2/bitmap.cpp
index 01e97eb..236b86e 100644
--- a/engines/cge2/bitmap.cpp
+++ b/engines/cge2/bitmap.cpp
@@ -43,27 +43,27 @@ void Bitmap::setVM(CGE2Engine *vm) {
 }
 
 Bitmap::Bitmap(CGE2Engine *vm, const char *fname) : _v(nullptr), _b(nullptr), _map(0), _vm(vm) {
-	char pat[kMaxPath];
+	Common::String path;
 
 	if (!strcmp(fname, "04tal201")) {
-		strcpy(pat, "04tal202");
+		path = "04tal202";
 		warning("Workaround for missing VBM: 04tal201");
 	} else if (!strcmp(fname, "11oqlist-")) {
-		strcpy(pat, "11oqlist");
+		path = "11oqlist";
 		warning("Workaround for wrong VBM name: 11oqlist-");
 	} else
-		strcpy(pat, fname);
+		path = fname;
 
-	strcpy(pat, setExtension(pat, ".VBM").c_str());
+	path = setExtension(path, ".VBM");
 
-	if (_vm->_resman->exist(pat)) {
-		EncryptedStream file(_vm, pat);
+	if (_vm->_resman->exist(path.c_str())) {
+		EncryptedStream file(_vm, path.c_str());
 		if (file.err())
 			error("Unable to find VBM [%s]", fname);
 		if (!loadVBM(&file))
 			error("Bad VBM [%s]", fname);
 	} else {
-		warning("Missing VBM [%s]", pat);
+		warning("Missing VBM [%s]", path.c_str());
 	}
 }
 


Commit: 8e22ef9b6d587113e3cd47c33cc0d344832da632
    https://github.com/scummvm/scummvm/commit/8e22ef9b6d587113e3cd47c33cc0d344832da632
Author: uruk (koppirnyo at gmail.com)
Date: 2014-08-13T19:49:56+02:00

Commit Message:
CGE2: Fix possible string overflow in Hero::expand().

Changed paths:
    engines/cge2/hero.cpp



diff --git a/engines/cge2/hero.cpp b/engines/cge2/hero.cpp
index 8236386..945bf48 100644
--- a/engines/cge2/hero.cpp
+++ b/engines/cge2/hero.cpp
@@ -190,14 +190,15 @@ Sprite *Hero::expand() {
 		setShapeList(_dim[0], shpcnt);
 	}
 
-	Common::String str(_vm->_text->getText(_ref + 100));
-	char text[kLineMax + 1];
-	strcpy(text, str.c_str());
+	char *tempStr = _vm->_text->getText(_ref + 100);
+	char *text = new char[strlen(tempStr) + 1];
+	strcpy(text, tempStr);
 	_reachStart = atoi(_vm->token(text));
 	_reachCycle = atoi(_vm->token(nullptr));
 	_sayStart = atoi(_vm->token(nullptr));
 	_funStart = atoi(_vm->token(nullptr));
 	_funDel = _funDel0 = (72 / _ext->_seq[0]._dly) * atoi(_vm->token(nullptr));
+	delete[] text;
 
 	int i = stepSize() / 2;
 	_maxDist = sqrt(double(i * i * 2));


Commit: fecabc039eb8363de4d0a36161b614527d38ebbd
    https://github.com/scummvm/scummvm/commit/fecabc039eb8363de4d0a36161b614527d38ebbd
Author: uruk (koppirnyo at gmail.com)
Date: 2014-08-13T19:53:28+02:00

Commit Message:
CGE2: Initialize every member in Talk's every constructor.

Changed paths:
    engines/cge2/talk.cpp



diff --git a/engines/cge2/talk.cpp b/engines/cge2/talk.cpp
index c39e064..9109da9 100644
--- a/engines/cge2/talk.cpp
+++ b/engines/cge2/talk.cpp
@@ -119,7 +119,7 @@ Talk::Talk(CGE2Engine *vm, const char *text, TextBoxStyle mode, ColorBank color,
 }
 
 Talk::Talk(CGE2Engine *vm, ColorBank color)
-	: Sprite(vm), _mode(kTBPure), _vm(vm) {
+	: Sprite(vm), _mode(kTBPure), _created(false), _wideSpace(false), _vm(vm) {
 	_color = _vm->_font->_colorSet[color];
 	
 	if (color == kCBRel)


Commit: 277f844f0900c01839ad6dc5680110f9ea326d17
    https://github.com/scummvm/scummvm/commit/277f844f0900c01839ad6dc5680110f9ea326d17
Author: uruk (koppirnyo at gmail.com)
Date: 2014-08-13T19:54:59+02:00

Commit Message:
CGE2: Initialize _maxDist in Hero's constructor.

Changed paths:
    engines/cge2/hero.cpp



diff --git a/engines/cge2/hero.cpp b/engines/cge2/hero.cpp
index 945bf48..86bd7ac 100644
--- a/engines/cge2/hero.cpp
+++ b/engines/cge2/hero.cpp
@@ -33,7 +33,7 @@ namespace CGE2 {
 
 Hero::Hero(CGE2Engine *vm)
 	: Sprite(vm), _contact(nullptr), _dir(kNoDir),
-      _curDim(0), _tracePtr(-1), _ignoreMap(false) {
+      _curDim(0), _tracePtr(-1), _ignoreMap(false), _maxDist(0) {
 
 	for (int i = 0; i < kDimMax; i++) {
 		_dim[i] = nullptr;


Commit: 547ad696f29bfefcf1552fd0d3c591db74bc2123
    https://github.com/scummvm/scummvm/commit/547ad696f29bfefcf1552fd0d3c591db74bc2123
Author: uruk (koppirnyo at gmail.com)
Date: 2014-08-13T19:57:09+02:00

Commit Message:
CGE2: Initialize _h and _w in every constuctor of Bitmap.

Changed paths:
    engines/cge2/bitmap.cpp



diff --git a/engines/cge2/bitmap.cpp b/engines/cge2/bitmap.cpp
index 236b86e..0f442b8 100644
--- a/engines/cge2/bitmap.cpp
+++ b/engines/cge2/bitmap.cpp
@@ -42,7 +42,7 @@ void Bitmap::setVM(CGE2Engine *vm) {
 	_vm = vm;
 }
 
-Bitmap::Bitmap(CGE2Engine *vm, const char *fname) : _v(nullptr), _b(nullptr), _map(0), _vm(vm) {
+Bitmap::Bitmap(CGE2Engine *vm, const char *fname) : _w(0), _h(0), _v(nullptr), _b(nullptr), _map(0), _vm(vm) {
 	Common::String path;
 
 	if (!strcmp(fname, "04tal201")) {


Commit: e52c14b8d98a9f50a91cecadd3a46042c72ec275
    https://github.com/scummvm/scummvm/commit/e52c14b8d98a9f50a91cecadd3a46042c72ec275
Author: uruk (koppirnyo at gmail.com)
Date: 2014-08-13T19:58:58+02:00

Commit Message:
CGE2: Remove unused variable from System.

Changed paths:
    engines/cge2/cge2_main.h



diff --git a/engines/cge2/cge2_main.h b/engines/cge2/cge2_main.h
index afbe7b3..88cca1c 100644
--- a/engines/cge2/cge2_main.h
+++ b/engines/cge2/cge2_main.h
@@ -36,7 +36,6 @@ namespace CGE2 {
 
 class System : public Sprite {
 public:
-	int _funDel;
 	int _blinkCounter;
 	Sprite *_blinkSprite;
 


Commit: 2eddd72fbf0a482319e4790dc9eb8cd220ae05ec
    https://github.com/scummvm/scummvm/commit/2eddd72fbf0a482319e4790dc9eb8cd220ae05ec
Author: uruk (koppirnyo at gmail.com)
Date: 2014-08-13T20:00:48+02:00

Commit Message:
CGE2: Initialize _startGameSlot.

Changed paths:
    engines/cge2/cge2.cpp



diff --git a/engines/cge2/cge2.cpp b/engines/cge2/cge2.cpp
index f3bc1de..5084351 100644
--- a/engines/cge2/cge2.cpp
+++ b/engines/cge2/cge2.cpp
@@ -95,6 +95,7 @@ CGE2Engine::CGE2Engine(OSystem *syst, const ADGameDescription *gameDescription)
 	_req = 1;
 	_midiNotify = nullptr;
 	_spriteNotify = nullptr;
+	_startGameSlot = 0;
 	
 	_sayCap = ConfMan.getBool("subtitles");
 	_sayVox = !ConfMan.getBool("speech_mute");






More information about the Scummvm-git-logs mailing list