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

Strangerke Strangerke at scummvm.org
Sun Nov 10 09:58:47 CET 2013


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

Summary:
2f333f997b CGE: Ensure string copy don't overrun. Fix CID 1003674 to 1003678


Commit: 2f333f997ba42c44fd76cefeeb1912e2548532b3
    https://github.com/scummvm/scummvm/commit/2f333f997ba42c44fd76cefeeb1912e2548532b3
Author: Strangerke (strangerke at scummvm.org)
Date: 2013-11-10T00:57:42-08:00

Commit Message:
CGE: Ensure string copy don't overrun. Fix CID 1003674 to 1003678

Changed paths:
    engines/cge/cge_main.cpp
    engines/cge/text.cpp
    engines/cge/vga13h.cpp



diff --git a/engines/cge/cge_main.cpp b/engines/cge/cge_main.cpp
index ae4dee6..5325558 100644
--- a/engines/cge/cge_main.cpp
+++ b/engines/cge/cge_main.cpp
@@ -1046,7 +1046,7 @@ void CGEEngine::loadSprite(const char *fname, int ref, int scene, int col = 0, i
 		for (line = sprf.readLine(); !sprf.eos(); line = sprf.readLine()) {
 			len = line.size();
 			lcnt++;
-			strcpy(tmpStr, line.c_str());
+			Common::strlcpy(tmpStr, line.c_str(), sizeof(tmpStr));
 			if (len == 0 || *tmpStr == '.')
 				continue;
 
@@ -1132,7 +1132,7 @@ void CGEEngine::loadSprite(const char *fname, int ref, int scene, int col = 0, i
 		_sprite->_flags._bDel = true;
 
 		// Extract the filename, without the extension
-		strcpy(_sprite->_file, fname);
+		Common::strlcpy(_sprite->_file, fname, sizeof(_sprite->_file));
 		char *p = strchr(_sprite->_file, '.');
 		if (p)
 			*p = '\0';
@@ -1158,7 +1158,7 @@ void CGEEngine::loadScript(const char *fname) {
 		char *p;
 
 		lcnt++;
-		strcpy(tmpStr, line.c_str());
+		Common::strlcpy(tmpStr, line.c_str(), sizeof(tmpStr));
 		if ((line.size() == 0) || (*tmpStr == '.'))
 			continue;
 
diff --git a/engines/cge/text.cpp b/engines/cge/text.cpp
index 27bb060..08ff005 100644
--- a/engines/cge/text.cpp
+++ b/engines/cge/text.cpp
@@ -69,7 +69,7 @@ int16 Text::count() {
 	for (line = tf.readLine(); !tf.eos(); line = tf.readLine()) {
 		char *s;
 		assert(line.size() <= 513);
-		strcpy(tmpStr, line.c_str());
+		Common::strlcpy(tmpStr, line.c_str(), sizeof(tmpStr));
 		if ((s = strtok(tmpStr, " =,;/\t\n")) == NULL)
 			continue;
 		if (!Common::isDigit(*s))
@@ -101,8 +101,7 @@ void Text::load() {
 	for (idx = 0, line = tf.readLine(); !tf.eos(); line = tf.readLine()) {
 		int n = line.size();
 		char *s;
-		assert(n <= 513);
-		strcpy(tmpStr, line.c_str());
+		Common::strlcpy(tmpStr, line.c_str(), sizeof(tmpStr));
 		if ((s = strtok(tmpStr, " =,;/\t\n")) == NULL)
 			continue;
 		if (!Common::isDigit(*s))
diff --git a/engines/cge/vga13h.cpp b/engines/cge/vga13h.cpp
index c0407ca..4954e63 100644
--- a/engines/cge/vga13h.cpp
+++ b/engines/cge/vga13h.cpp
@@ -214,8 +214,7 @@ Sprite *Sprite::expand() {
 
 		for (line = sprf.readLine(); !sprf.eos(); line = sprf.readLine()) {
 			len = line.size();
-			assert(len <= 513);
-			strcpy(tmpStr, line.c_str());
+			Common::strlcpy(tmpStr, line.c_str(), sizeof(tmpStr));
 			lcnt++;
 			if (len == 0 || *tmpStr == '.')
 				continue;






More information about the Scummvm-git-logs mailing list