[Scummvm-cvs-logs] SF.net SVN: scummvm:[48908] scummvm/trunk/engines/sci/engine/kfile.cpp

m_kiewitz at users.sourceforge.net m_kiewitz at users.sourceforge.net
Mon May 3 15:55:49 CEST 2010


Revision: 48908
          http://scummvm.svn.sourceforge.net/scummvm/?rev=48908&view=rev
Author:   m_kiewitz
Date:     2010-05-03 13:55:49 +0000 (Mon, 03 May 2010)

Log Message:
-----------
SCI: fix possible heap error

Modified Paths:
--------------
    scummvm/trunk/engines/sci/engine/kfile.cpp

Modified: scummvm/trunk/engines/sci/engine/kfile.cpp
===================================================================
--- scummvm/trunk/engines/sci/engine/kfile.cpp	2010-05-03 13:41:19 UTC (rev 48907)
+++ scummvm/trunk/engines/sci/engine/kfile.cpp	2010-05-03 13:55:49 UTC (rev 48908)
@@ -229,16 +229,17 @@
 		error("fgets_wrapper: Trying to read from file '%s' opened for writing", f->_name.c_str());
 		return;
 	}
-	if (maxsize > 1)
+	if (maxsize > 1) {
+		memset(dest, 0, maxsize);
 		f->_in->readLine(dest, maxsize);
-	else
+		// The returned string must not have an ending LF
+		int strSize = strlen(dest);
+		if (strSize > 0) {
+			if (dest[strSize - 1] == 0x0A)
+				dest[strSize - 1] = 0;
+		}
+	} else {
 		*dest = f->_in->readByte();
-
-	// The returned string must not have an ending LF
-	int strSize = strlen(dest);
-	if (strSize > 0) {
-		if (dest[strSize - 1] == 0x0A)
-			dest[strSize - 1] = 0;
 	}
 
 	debugC(2, kDebugLevelFile, "FGets'ed \"%s\"", dest);


This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.




More information about the Scummvm-git-logs mailing list