[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [34792] trunk/blender/source/blender: fix for possible (but unlikely) problem with strncpy not adding \0 and then extending the string with strcat .

Campbell Barton ideasman42 at gmail.com
Sat Feb 12 10:58:29 CET 2011


Revision: 34792
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=34792
Author:   campbellbarton
Date:     2011-02-12 09:58:28 +0000 (Sat, 12 Feb 2011)
Log Message:
-----------
fix for possible (but unlikely) problem with strncpy not adding \0 and then extending the string with strcat. use BLI_snprintf instead.

Modified Paths:
--------------
    trunk/blender/source/blender/blenkernel/intern/particle_system.c
    trunk/blender/source/blender/makesrna/intern/rna_fluidsim.c

Modified: trunk/blender/source/blender/blenkernel/intern/particle_system.c
===================================================================
--- trunk/blender/source/blender/blenkernel/intern/particle_system.c	2011-02-12 09:10:06 UTC (rev 34791)
+++ trunk/blender/source/blender/blenkernel/intern/particle_system.c	2011-02-12 09:58:28 UTC (rev 34792)
@@ -3744,8 +3744,6 @@
 			FluidsimSettings *fss= fluidmd->fss;
 			ParticleSettings *part = psys->part;
 			ParticleData *pa=NULL;
-			const char *suffix  = "fluidsurface_particles_####";
-			const char *suffix2 = ".gz";
 			char filename[256];
 			char debugStrBuffer[256];
 			int  curFrame = sim->scene->r.cfra -1; // warning - sync with derived mesh fsmesh loading
@@ -3755,14 +3753,13 @@
 	
 // XXX			if(ob==G.obedit) // off...
 //				return;
-	
+
 			// ok, start loading
-			strcpy(filename, fss->surfdataPath);
-			strcat(filename, suffix);
+			BLI_snprintf(filename, sizeof(filename), "%sfluidsurface_particles_####.gz", fss->surfdataPath);
+			
 			BLI_path_abs(filename, G.main->name);
 			BLI_path_frame(filename, curFrame, 0); // fixed #frame-no 
-			strcat(filename, suffix2);
-	
+
 			gzf = gzopen(filename, "rb");
 			if (!gzf) {
 				snprintf(debugStrBuffer,256,"readFsPartData::error - Unable to open file for reading '%s' \n", filename); 

Modified: trunk/blender/source/blender/makesrna/intern/rna_fluidsim.c
===================================================================
--- trunk/blender/source/blender/makesrna/intern/rna_fluidsim.c	2011-02-12 09:10:06 UTC (rev 34791)
+++ trunk/blender/source/blender/makesrna/intern/rna_fluidsim.c	2011-02-12 09:58:28 UTC (rev 34792)
@@ -85,14 +85,12 @@
 	char targetDir[FILE_MAXFILE+FILE_MAXDIR], targetFile[FILE_MAXFILE+FILE_MAXDIR];
 	int curFrame = 1;
 
-	strncpy(targetDir, fss->surfdataPath, FILE_MAXDIR);
-	strcat(targetDir,"fluidsurface_final_####");
+	BLI_snprintf(targetDir, sizeof(targetDir), "%sfluidsurface_final_####.bobj.gz", fss->surfdataPath);
 	BLI_path_abs(targetDir, G.main->name);
 
 	do {
-		strcpy(targetFile,targetDir);
+		BLI_strncpy(targetFile, targetDir, sizeof(targetFile));
 		BLI_path_frame(targetFile, curFrame++, 0);
-		strcat(targetFile, ".bobj.gz");
 	} while(BLI_exist(targetFile));
 
 	return curFrame - 1;




More information about the Bf-blender-cvs mailing list