[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [32883] trunk/blender/source/blender: tedious string copying changes

Campbell Barton ideasman42 at gmail.com
Fri Nov 5 08:35:48 CET 2010


Revision: 32883
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=32883
Author:   campbellbarton
Date:     2010-11-05 08:35:21 +0100 (Fri, 05 Nov 2010)

Log Message:
-----------
tedious string copying changes
- use sizeof() in more places.
- fixed some off by 1 bugs copying strings. setting curve font family for instance was 1 char too short.
- replace strncpy and strcpy with BLI_strncpy

Modified Paths:
--------------
    trunk/blender/source/blender/blenkernel/intern/action.c
    trunk/blender/source/blender/blenkernel/intern/anim_sys.c
    trunk/blender/source/blender/blenkernel/intern/armature.c
    trunk/blender/source/blender/blenkernel/intern/blender.c
    trunk/blender/source/blender/blenkernel/intern/constraint.c
    trunk/blender/source/blender/blenkernel/intern/curve.c
    trunk/blender/source/blender/blenkernel/intern/font.c
    trunk/blender/source/blender/blenkernel/intern/ipo.c
    trunk/blender/source/blender/blenkernel/intern/library.c
    trunk/blender/source/blender/blenloader/intern/writefile.c
    trunk/blender/source/blender/editors/armature/editarmature.c
    trunk/blender/source/blender/editors/armature/editarmature_retarget.c
    trunk/blender/source/blender/editors/object/object_edit.c
    trunk/blender/source/blender/editors/object/object_hook.c
    trunk/blender/source/blender/editors/space_file/filelist.c
    trunk/blender/source/blender/editors/space_image/image_ops.c
    trunk/blender/source/blender/editors/space_node/drawnode.c
    trunk/blender/source/blender/editors/space_outliner/outliner.c
    trunk/blender/source/blender/editors/space_view3d/view3d_buttons.c
    trunk/blender/source/blender/makesrna/intern/rna_controller.c
    trunk/blender/source/blender/makesrna/intern/rna_curve.c
    trunk/blender/source/blender/windowmanager/intern/wm.c
    trunk/blender/source/blender/windowmanager/intern/wm_files.c
    trunk/blender/source/blender/windowmanager/intern/wm_window.c

Modified: trunk/blender/source/blender/blenkernel/intern/action.c
===================================================================
--- trunk/blender/source/blender/blenkernel/intern/action.c	2010-11-05 06:33:33 UTC (rev 32882)
+++ trunk/blender/source/blender/blenkernel/intern/action.c	2010-11-05 07:35:21 UTC (rev 32883)
@@ -408,7 +408,7 @@
 	/* If not, create it and add it */
 	chan = MEM_callocN(sizeof(bPoseChannel), "verifyPoseChannel");
 	
-	strncpy(chan->name, name, 31);
+	BLI_strncpy(chan->name, name, sizeof(chan->name));
 	/* init vars to prevent math errors */
 	chan->quat[0] = chan->rotAxis[1]= 1.0f;
 	chan->size[0] = chan->size[1] = chan->size[2] = 1.0f;
@@ -774,7 +774,7 @@
 		return;
 	
 	grp= MEM_callocN(sizeof(bActionGroup), "PoseGroup");
-	strcpy(grp->name, "Group");
+	BLI_strncpy(grp->name, "Group", sizeof(grp->name));
 	BLI_addtail(&pose->agroups, grp);
 	BLI_uniquename(&pose->agroups, grp, "Group", '.', offsetof(bActionGroup, name), sizeof(grp->name));
 	
@@ -1119,8 +1119,8 @@
 	
 	workob->pose= pose;	/* need to set pose too, since this is used for both types of Action Constraint */
 
-	strcpy(workob->parsubstr, ob->parsubstr);
-	strcpy(workob->id.name, "OB<ConstrWorkOb>"); /* we don't use real object name, otherwise RNA screws with the real thing */
+	BLI_strncpy(workob->parsubstr, ob->parsubstr, sizeof(workob->parsubstr));
+	BLI_strncpy(workob->id.name, "OB<ConstrWorkOb>", sizeof(workob->id.name)); /* we don't use real object name, otherwise RNA screws with the real thing */
 	
 	/* if we're given a group to use, it's likely to be more efficient (though a bit more dangerous) */
 	if (agrp) {

Modified: trunk/blender/source/blender/blenkernel/intern/anim_sys.c
===================================================================
--- trunk/blender/source/blender/blenkernel/intern/anim_sys.c	2010-11-05 06:33:33 UTC (rev 32882)
+++ trunk/blender/source/blender/blenkernel/intern/anim_sys.c	2010-11-05 07:35:21 UTC (rev 32883)
@@ -614,12 +614,9 @@
 	
 	/* allocate new KeyingSet */
 	ks= MEM_callocN(sizeof(KeyingSet), "KeyingSet");
-	
-	if (name)
-		strncpy(ks->name, name, sizeof(ks->name));
-	else
-		strcpy(ks->name, "KeyingSet");
-	
+
+	BLI_strncpy(ks->name, name ? name : "KeyingSet", sizeof(ks->name));
+
 	ks->flag= flag;
 	ks->keyingflag= keyingflag;
 	
@@ -667,7 +664,7 @@
 	if (group_name)
 		BLI_snprintf(ksp->group, 64, group_name);
 	else
-		strcpy(ksp->group, "");
+		ksp->group[0]= '\0';
 	
 	/* store additional info for relative paths (just in case user makes the set relative) */
 	if (id)

Modified: trunk/blender/source/blender/blenkernel/intern/armature.c
===================================================================
--- trunk/blender/source/blender/blenkernel/intern/armature.c	2010-11-05 06:33:33 UTC (rev 32882)
+++ trunk/blender/source/blender/blenkernel/intern/armature.c	2010-11-05 07:35:21 UTC (rev 32883)
@@ -260,7 +260,7 @@
 
 	len= strlen(name);
 	if (len == 0) return 0;
-	strcpy(basename, name);
+	BLI_strncpy(basename, name, sizeof(basename));
 	
 	/* Figure out extension to append: 
 	 *	- The extension to append is based upon the axis that we are working on.

Modified: trunk/blender/source/blender/blenkernel/intern/blender.c
===================================================================
--- trunk/blender/source/blender/blenkernel/intern/blender.c	2010-11-05 06:33:33 UTC (rev 32882)
+++ trunk/blender/source/blender/blenkernel/intern/blender.c	2010-11-05 07:35:21 UTC (rev 32883)
@@ -460,13 +460,13 @@
 
 static int read_undosave(bContext *C, UndoElem *uel)
 {
-	char mainstr[FILE_MAXDIR+FILE_MAXFILE];
+	char mainstr[sizeof(G.main->name)];
 	int success=0, fileflags;
 	
 	/* This is needed so undoing/redoing doesnt crash with threaded previews going */
 	WM_jobs_stop_all(CTX_wm_manager(C));
 
-	strcpy(mainstr, G.main->name);	/* temporal store */
+	BLI_strncpy(mainstr, G.main->name, sizeof(mainstr));	/* temporal store */
 
 	fileflags= G.fileflags;
 	G.fileflags |= G_FILE_NO_UI;

Modified: trunk/blender/source/blender/blenkernel/intern/constraint.c
===================================================================
--- trunk/blender/source/blender/blenkernel/intern/constraint.c	2010-11-05 06:33:33 UTC (rev 32882)
+++ trunk/blender/source/blender/blenkernel/intern/constraint.c	2010-11-05 07:35:21 UTC (rev 32883)
@@ -674,7 +674,7 @@
 		ct= MEM_callocN(sizeof(bConstraintTarget), "tempConstraintTarget"); \
 		 \
 		ct->tar= datatar; \
-		strcpy(ct->subtarget, datasubtarget); \
+		BLI_strncpy(ct->subtarget, datasubtarget, sizeof(ct->subtarget)); \
 		ct->space= con->tarspace; \
 		ct->flag= CONSTRAINT_TAR_TEMP; \
 		 \

Modified: trunk/blender/source/blender/blenkernel/intern/curve.c
===================================================================
--- trunk/blender/source/blender/blenkernel/intern/curve.c	2010-11-05 06:33:33 UTC (rev 32882)
+++ trunk/blender/source/blender/blenkernel/intern/curve.c	2010-11-05 07:35:21 UTC (rev 32883)
@@ -155,7 +155,7 @@
 		cu->vfont= cu->vfontb= cu->vfonti= cu->vfontbi= get_builtin_font();
 		cu->vfont->id.us+=4;
 		cu->str= MEM_mallocN(12, "str");
-		strcpy(cu->str, "Text");
+		BLI_strncpy(cu->str, "Text", 12);
 		cu->len= cu->pos= 4;
 		cu->strinfo= MEM_callocN(12*sizeof(CharInfo), "strinfo new");
 		cu->totbox= cu->actbox= 1;

Modified: trunk/blender/source/blender/blenkernel/intern/font.c
===================================================================
--- trunk/blender/source/blender/blenkernel/intern/font.c	2010-11-05 06:33:33 UTC (rev 32882)
+++ trunk/blender/source/blender/blenkernel/intern/font.c	2010-11-05 07:35:21 UTC (rev 32883)
@@ -394,7 +394,7 @@
 
 			/* if there's a font name, use it for the ID name */
 			if (strcmp(vfd->name, "")!=0) {
-				BLI_strncpy(vfont->id.name+2, vfd->name, 21);
+				BLI_strncpy(vfont->id.name+2, vfd->name, sizeof(vfont->id.name)-2);
 			}
 			BLI_strncpy(vfont->name, name, sizeof(vfont->name));
 

Modified: trunk/blender/source/blender/blenkernel/intern/ipo.c
===================================================================
--- trunk/blender/source/blender/blenkernel/intern/ipo.c	2010-11-05 06:33:33 UTC (rev 32882)
+++ trunk/blender/source/blender/blenkernel/intern/ipo.c	2010-11-05 07:35:21 UTC (rev 32883)
@@ -1017,13 +1017,13 @@
 				dtar= &dvar->targets[0];
 				dtar->id= (ID *)idriver->ob;
 				if (idriver->name[0])
-					BLI_strncpy(dtar->pchan_name, idriver->name, 32);
+					BLI_strncpy(dtar->pchan_name, idriver->name, sizeof(dtar->pchan_name));
 				
 					/* second bone target (name was stored in same var as the first one) */
 				dtar= &dvar->targets[1];
 				dtar->id= (ID *)idriver->ob;
 				if (idriver->name[0]) // xxx... for safety
-					BLI_strncpy(dtar->pchan_name, idriver->name+DRIVER_NAME_OFFS, 32);
+					BLI_strncpy(dtar->pchan_name, idriver->name+DRIVER_NAME_OFFS, sizeof(dtar->pchan_name));
 			}
 			else {
 				/* only a single variable, of type 'transform channel' */
@@ -1034,7 +1034,7 @@
 				dtar= &dvar->targets[0];
 				dtar->id= (ID *)idriver->ob;
 				if (idriver->name[0])
-					BLI_strncpy(dtar->pchan_name, idriver->name, 32);
+					BLI_strncpy(dtar->pchan_name, idriver->name, sizeof(dtar->pchan_name));
 				dtar->transChan= adrcode_to_dtar_transchan(idriver->adrcode);
 				dtar->flag |= DTAR_FLAG_LOCALSPACE; /* old drivers took local space */
 			}

Modified: trunk/blender/source/blender/blenkernel/intern/library.c
===================================================================
--- trunk/blender/source/blender/blenkernel/intern/library.c	2010-11-05 06:33:33 UTC (rev 32882)
+++ trunk/blender/source/blender/blenkernel/intern/library.c	2010-11-05 07:35:21 UTC (rev 32883)
@@ -1365,7 +1365,7 @@
 {
 	ListBase *lb;
 
-	strncpy(id->name+2, name, 21);
+	BLI_strncpy(id->name+2, name, sizeof(id->name)-2);
 	lb= which_libbase(G.main, GS(id->name) );
 	
 	new_id(lb, id, name);				

Modified: trunk/blender/source/blender/blenloader/intern/writefile.c
===================================================================
--- trunk/blender/source/blender/blenloader/intern/writefile.c	2010-11-05 06:33:33 UTC (rev 32882)
+++ trunk/blender/source/blender/blenloader/intern/writefile.c	2010-11-05 07:35:21 UTC (rev 32883)
@@ -506,7 +506,7 @@
 			data[1]= sce->r.efra;
 
 			memset(data+2, 0, sizeof(int)*6);
-			strncpy((char *)(data+2), sce->id.name+2, 21);
+			BLI_strncpy((char *)(data+2), sce->id.name+2, sizeof(sce->id.name)-2);
 
 			writedata(wd, REND, 32, data);
 		}

Modified: trunk/blender/source/blender/editors/armature/editarmature.c
===================================================================
--- trunk/blender/source/blender/editors/armature/editarmature.c	2010-11-05 06:33:33 UTC (rev 32882)
+++ trunk/blender/source/blender/editors/armature/editarmature.c	2010-11-05 07:35:21 UTC (rev 32883)
@@ -170,7 +170,7 @@
 		
 		/*	Copy relevant data from bone to eBone */
 		eBone->parent= parent;
-		BLI_strncpy(eBone->name, curBone->name, 32);
+		BLI_strncpy(eBone->name, curBone->name, sizeof(eBone->name));
 		eBone->flag = curBone->flag;
 		
 		/* fix selection flags */
@@ -332,9 +332,9 @@
 		newBone= MEM_callocN(sizeof(Bone), "bone");
 		eBone->temp= newBone;	/* Associate the real Bones with the EditBones */
 		
-		BLI_strncpy(newBone->name, eBone->name, 32);
-		memcpy(newBone->head, eBone->head, sizeof(float)*3);
-		memcpy(newBone->tail, eBone->tail, sizeof(float)*3);
+		BLI_strncpy(newBone->name, eBone->name, sizeof(newBone->name));
+		memcpy(newBone->head, eBone->head, sizeof(newBone->head));
+		memcpy(newBone->tail, eBone->tail, sizeof(newBone->tail));
 		newBone->flag= eBone->flag;
 		
 		if (eBone == arm->act_edbone) {
@@ -758,7 +758,7 @@
 							
 							for (achan= act->chanbase.first; achan; achan= achan->next) {
 								if (strcmp(achan->name, pchan->name)==0)
-									BLI_strncpy(achan->name, curbone->name, 32);
+									BLI_strncpy(achan->name, curbone->name, sizeof(achan->name));
 							}
 						}
 					}
@@ -802,7 +802,7 @@
 			if (ob->partype==PARBONE) {
 				/* bone name in object */
 				if (!strcmp(ob->parsubstr, pchan->name))
-					BLI_strncpy(ob->parsubstr, curbone->name, 32);
+					BLI_strncpy(ob->parsubstr, curbone->name, sizeof(ob->parsubstr));
 			}
 			
 			/* make tar armature be new parent */
@@ -2331,7 +2331,7 @@
 {
 	EditBone *bone= MEM_callocN(sizeof(EditBone), "eBone");
 	
-	BLI_strncpy(bone->name, name, 32);
+	BLI_strncpy(bone->name, name, sizeof(bone->name));
 	unique_editbone_name(arm->edbo, bone->name, NULL);
 	

@@ Diff output truncated at 10240 characters. @@




More information about the Bf-blender-cvs mailing list