[Scummvm-cvs-logs] CVS: scummvm/scumm nut_renderer.cpp,1.17,1.18

Max Horn fingolfin at users.sourceforge.net
Mon Mar 3 16:09:09 CET 2003


Update of /cvsroot/scummvm/scummvm/scumm
In directory sc8-pr-cvs1:/tmp/cvs-serv8879

Modified Files:
	nut_renderer.cpp 
Log Message:
fix double free bug

Index: nut_renderer.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/nut_renderer.cpp,v
retrieving revision 1.17
retrieving revision 1.18
diff -u -d -r1.17 -r1.18
--- nut_renderer.cpp	3 Mar 2003 23:39:48 -0000	1.17
+++ nut_renderer.cpp	3 Mar 2003 23:57:10 -0000	1.18
@@ -30,8 +30,10 @@
 }
 
 NutRenderer::~NutRenderer() {
-	if (_dataSrc != NULL)
+	if (_dataSrc != NULL) {
 		free(_dataSrc);
+		_dataSrc = NULL;
+	}
 }
 
 void NutRenderer::decodeCodec44(byte *dst, byte *src, uint32 length) {
@@ -84,8 +86,10 @@
 		return false;
 	}
 
-	if (_dataSrc != NULL)
+	if (_dataSrc != NULL) {
 		free(_dataSrc);
+		_dataSrc = NULL;
+	}
 
 	uint32 length = file.readUint32BE();
 	_dataSrc = (byte *)malloc(length);
@@ -95,6 +99,7 @@
 	if (READ_BE_UINT32(_dataSrc) != 'AHDR') {
 		debug(2, "NutRenderer::loadFont() there is no AHDR chunk in font header");
 		free(_dataSrc);
+		_dataSrc = NULL;
 		return false;
 	}
 	
@@ -110,12 +115,14 @@
 			else {
 				debug(2, "NutRenderer::loadFont() there is no FRME chunk");
 				free(_dataSrc);
+				_dataSrc = NULL;
 				return false;
 			}
 		}
 		else {
 			debug(2, "NutRenderer::loadFont() there is no FOBJ chunk in FRME chunk");
 			free(_dataSrc);
+			_dataSrc = NULL;
 			return false;
 		}
 	}





More information about the Scummvm-git-logs mailing list