[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [40581] trunk/blender/source: replace strncpy with BLI_strncpy, in some cases strncpy was being misused since it doesnt ensure \0 termination .

Campbell Barton ideasman42 at gmail.com
Mon Sep 26 20:51:10 CEST 2011


Revision: 40581
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=40581
Author:   campbellbarton
Date:     2011-09-26 18:51:10 +0000 (Mon, 26 Sep 2011)
Log Message:
-----------
replace strncpy with BLI_strncpy, in some cases strncpy was being misused since it doesnt ensure \0 termination.
also dont call CTX_data_scene() twice when checking for function arguments.

Modified Paths:
--------------
    trunk/blender/source/blender/blenfont/intern/blf_lang.c
    trunk/blender/source/blender/blenkernel/intern/action.c
    trunk/blender/source/blender/blenkernel/intern/blender.c
    trunk/blender/source/blender/blenkernel/intern/ipo.c
    trunk/blender/source/blender/blenkernel/intern/key.c
    trunk/blender/source/blender/blenkernel/intern/node.c
    trunk/blender/source/blender/blenkernel/intern/seqeffects.c
    trunk/blender/source/blender/blenkernel/intern/sequencer.c
    trunk/blender/source/blender/blenloader/intern/readfile.c
    trunk/blender/source/blender/editors/armature/poselib.c
    trunk/blender/source/blender/editors/physics/particle_edit.c
    trunk/blender/source/blender/editors/sculpt_paint/paint_undo.c
    trunk/blender/source/blender/editors/space_sequencer/sequencer_select.c
    trunk/blender/source/blender/editors/space_text/text_draw.c
    trunk/blender/source/blender/editors/util/editmode_undo.c
    trunk/blender/source/blender/modifiers/intern/MOD_armature.c
    trunk/blender/source/blender/modifiers/intern/MOD_bevel.c
    trunk/blender/source/blender/modifiers/intern/MOD_cast.c
    trunk/blender/source/blender/modifiers/intern/MOD_curve.c
    trunk/blender/source/blender/modifiers/intern/MOD_displace.c
    trunk/blender/source/blender/modifiers/intern/MOD_hook.c
    trunk/blender/source/blender/modifiers/intern/MOD_lattice.c
    trunk/blender/source/blender/modifiers/intern/MOD_smooth.c
    trunk/blender/source/blender/modifiers/intern/MOD_warp.c
    trunk/blender/source/blender/modifiers/intern/MOD_wave.c
    trunk/blender/source/blender/nodes/intern/node_common.c
    trunk/blender/source/blender/python/generic/bpy_internal_import.c
    trunk/blender/source/blender/render/intern/source/convertblender.c
    trunk/blender/source/blender/render/intern/source/pipeline.c
    trunk/blender/source/creator/creator.c

Modified: trunk/blender/source/blender/blenfont/intern/blf_lang.c
===================================================================
--- trunk/blender/source/blender/blenfont/intern/blf_lang.c	2011-09-26 17:32:50 UTC (rev 40580)
+++ trunk/blender/source/blender/blenfont/intern/blf_lang.c	2011-09-26 18:51:10 UTC (rev 40581)
@@ -158,7 +158,7 @@
 				char *s;
 
 				/* store defaul locale */
-				strncpy(default_locale, env_language, sizeof(default_locale));
+				BLI_strncpy(default_locale, env_language, sizeof(default_locale));
 
 				/* use first language as default */
 				s= strchr(default_locale, ':');

Modified: trunk/blender/source/blender/blenkernel/intern/action.c
===================================================================
--- trunk/blender/source/blender/blenkernel/intern/action.c	2011-09-26 17:32:50 UTC (rev 40580)
+++ trunk/blender/source/blender/blenkernel/intern/action.c	2011-09-26 18:51:10 UTC (rev 40581)
@@ -270,7 +270,7 @@
 	
 	/* make it selected, with default name */
 	agrp->flag = AGRP_SELECTED;
-	strncpy(agrp->name, name[0] ? name : "Group", sizeof(agrp->name));
+	BLI_strncpy(agrp->name, name[0] ? name : "Group", sizeof(agrp->name));
 	
 	/* add to action, and validate */
 	BLI_addtail(&act->groups, agrp);

Modified: trunk/blender/source/blender/blenkernel/intern/blender.c
===================================================================
--- trunk/blender/source/blender/blenkernel/intern/blender.c	2011-09-26 17:32:50 UTC (rev 40580)
+++ trunk/blender/source/blender/blenkernel/intern/blender.c	2011-09-26 18:51:10 UTC (rev 40581)
@@ -518,7 +518,7 @@
 	
 	/* make new */
 	curundo= uel= MEM_callocN(sizeof(UndoElem), "undo file");
-	strncpy(uel->name, name, MAXUNDONAME-1);
+	BLI_strncpy(uel->name, name, sizeof(uel->name));
 	BLI_addtail(&undobase, uel);
 	
 	/* and limit amount to the maximum */

Modified: trunk/blender/source/blender/blenkernel/intern/ipo.c
===================================================================
--- trunk/blender/source/blender/blenkernel/intern/ipo.c	2011-09-26 17:32:50 UTC (rev 40580)
+++ trunk/blender/source/blender/blenkernel/intern/ipo.c	2011-09-26 18:51:10 UTC (rev 40581)
@@ -1103,7 +1103,7 @@
 				agrp->flag = AGRP_SELECTED;
 				if (muteipo) agrp->flag |= AGRP_MUTED;
 				
-				strncpy(agrp->name, grpname, sizeof(agrp->name));
+				BLI_strncpy(agrp->name, grpname, sizeof(agrp->name));
 				
 				BLI_addtail(&tmp_act.groups, agrp);
 				BLI_uniquename(&tmp_act.groups, agrp, "Group", '.', offsetof(bActionGroup, name), sizeof(agrp->name));

Modified: trunk/blender/source/blender/blenkernel/intern/key.c
===================================================================
--- trunk/blender/source/blender/blenkernel/intern/key.c	2011-09-26 17:32:50 UTC (rev 40580)
+++ trunk/blender/source/blender/blenkernel/intern/key.c	2011-09-26 18:51:10 UTC (rev 40581)
@@ -1445,10 +1445,10 @@
 	
 	tot= BLI_countlist(&key->block);
 	if(name) {
-		strncpy(kb->name, name, sizeof(kb->name));
+		BLI_strncpy(kb->name, name, sizeof(kb->name));
 	} else {
-		if(tot==1) strcpy(kb->name, "Basis");
-		else sprintf(kb->name, "Key %d", tot-1);
+		if(tot==1) BLI_strncpy(kb->name, "Basis", sizeof(kb->name));
+		else BLI_snprintf(kb->name, sizeof(kb->name), "Key %d", tot-1);
 	}
 
 	BLI_uniquename(&key->block, kb, "Key", '.', offsetof(KeyBlock, name), sizeof(kb->name));

Modified: trunk/blender/source/blender/blenkernel/intern/node.c
===================================================================
--- trunk/blender/source/blender/blenkernel/intern/node.c	2011-09-26 17:32:50 UTC (rev 40580)
+++ trunk/blender/source/blender/blenkernel/intern/node.c	2011-09-26 18:51:10 UTC (rev 40581)
@@ -1682,7 +1682,7 @@
 void node_type_storage(bNodeType *ntype, const char *storagename, void (*freestoragefunc)(struct bNode *), void (*copystoragefunc)(struct bNode *, struct bNode *))
 {
 	if (storagename)
-		strncpy(ntype->storagename, storagename, sizeof(ntype->storagename));
+		BLI_strncpy(ntype->storagename, storagename, sizeof(ntype->storagename));
 	else
 		ntype->storagename[0] = '\0';
 	ntype->copystoragefunc = copystoragefunc;

Modified: trunk/blender/source/blender/blenkernel/intern/seqeffects.c
===================================================================
--- trunk/blender/source/blender/blenkernel/intern/seqeffects.c	2011-09-26 17:32:50 UTC (rev 40580)
+++ trunk/blender/source/blender/blenkernel/intern/seqeffects.c	2011-09-26 18:51:10 UTC (rev 40581)
@@ -41,6 +41,7 @@
 
 #include "BLI_math.h" /* windows needs for M_PI */
 #include "BLI_utildefines.h"
+#include "BLI_string.h"
 
 #include "DNA_scene_types.h"
 #include "DNA_sequence_types.h"
@@ -177,7 +178,7 @@
 				MEM_freeN(info);
 
 				cp= BLI_dynlib_find_symbol(pis->handle, "seqname");
-				if(cp) strncpy(cp, seqname, 21);
+				if(cp) BLI_strncpy(cp, seqname, 21);
 			} else {
 				printf ("Plugin returned unrecognized version number\n");
 				return;
@@ -203,7 +204,7 @@
 
 	pis= MEM_callocN(sizeof(PluginSeq), "PluginSeq");
 
-	strncpy(pis->name, str, FILE_MAXDIR+FILE_MAXFILE);
+	BLI_strncpy(pis->name, str, FILE_MAX);
 	open_plugin_seq(pis, seqname);
 
 	if(pis->doit==NULL) {

Modified: trunk/blender/source/blender/blenkernel/intern/sequencer.c
===================================================================
--- trunk/blender/source/blender/blenkernel/intern/sequencer.c	2011-09-26 17:32:50 UTC (rev 40580)
+++ trunk/blender/source/blender/blenkernel/intern/sequencer.c	2011-09-26 18:51:10 UTC (rev 40581)
@@ -3653,7 +3653,7 @@
 	calc_sequence_disp(scene, seq);
 
 	/* last active name */
-	strncpy(ed->act_sounddir, strip->dir, FILE_MAXDIR-1);
+	BLI_strncpy(ed->act_sounddir, strip->dir, FILE_MAXDIR);
 
 	seq_load_apply(scene, seq, seq_load);
 

Modified: trunk/blender/source/blender/blenloader/intern/readfile.c
===================================================================
--- trunk/blender/source/blender/blenloader/intern/readfile.c	2011-09-26 17:32:50 UTC (rev 40580)
+++ trunk/blender/source/blender/blenloader/intern/readfile.c	2011-09-26 18:51:10 UTC (rev 40581)
@@ -516,7 +516,7 @@
 	BLI_addtail(mainlist, m);
 
 	lib= alloc_libblock(&m->library, ID_LI, "lib");
-	strncpy(lib->name, filepath, sizeof(lib->name)-1);
+	BLI_strncpy(lib->name, filepath, sizeof(lib->name));
 	BLI_strncpy(lib->filepath, name1, sizeof(lib->filepath));
 	
 	m->curlib= lib;
@@ -5614,7 +5614,7 @@
 			 * link into an unsaved blend file. See [#27405].
 			 * The remap relative option will make it relative again on save - campbell */
 			if (strncmp(lib->name, "//", 2)==0) {
-				strncpy(lib->name, lib->filepath, sizeof(lib->name));
+				BLI_strncpy(lib->name, lib->filepath, sizeof(lib->name));
 			}
 		}
 	}
@@ -5623,7 +5623,7 @@
 			/* Libraries store both relative and abs paths, recreate relative paths,
 			 * relative to the blend file since indirectly linked libs will be relative to their direct linked library */
 			if (strncmp(lib->name, "//", 2)==0) { /* if this is relative to begin with? */
-				strncpy(lib->name, lib->filepath, sizeof(lib->name));
+				BLI_strncpy(lib->name, lib->filepath, sizeof(lib->name));
 				BLI_path_rel(lib->name, basepath);
 			}
 		}
@@ -12240,7 +12240,7 @@
 	bfd->main->versionfile= fd->fileversion;
 	
 	bfd->type= BLENFILETYPE_BLEND;
-	strncpy(bfd->main->name, filepath, sizeof(bfd->main->name)-1);
+	BLI_strncpy(bfd->main->name, filepath, sizeof(bfd->main->name));
 
 	while(bhead) {
 		switch(bhead->code) {

Modified: trunk/blender/source/blender/editors/armature/poselib.c
===================================================================
--- trunk/blender/source/blender/editors/armature/poselib.c	2011-09-26 17:32:50 UTC (rev 40580)
+++ trunk/blender/source/blender/editors/armature/poselib.c	2011-09-26 18:51:10 UTC (rev 40581)
@@ -993,7 +993,7 @@
 				memcpy(&tempstr[index+1], &pld->searchstr[index], 64-index);
 			}
 			else {
-				strncpy(tempstr, pld->searchstr, 64);
+				BLI_strncpy(tempstr, pld->searchstr, sizeof(tempstr));
 			}
 			
 			/* get marker name */

Modified: trunk/blender/source/blender/editors/physics/particle_edit.c
===================================================================
--- trunk/blender/source/blender/editors/physics/particle_edit.c	2011-09-26 17:32:50 UTC (rev 40580)
+++ trunk/blender/source/blender/editors/physics/particle_edit.c	2011-09-26 18:51:10 UTC (rev 40581)
@@ -3918,7 +3918,7 @@
 
 	/* make new */
 	edit->curundo= undo= MEM_callocN(sizeof(PTCacheUndo), "particle undo file");
-	strncpy(undo->name, str, 64-1);
+	BLI_strncpy(undo->name, str, sizeof(undo->name));
 	BLI_addtail(&edit->undo, undo);
 	
 	/* and limit amount to the maximum */

Modified: trunk/blender/source/blender/editors/sculpt_paint/paint_undo.c
===================================================================
--- trunk/blender/source/blender/editors/sculpt_paint/paint_undo.c	2011-09-26 17:32:50 UTC (rev 40580)
+++ trunk/blender/source/blender/editors/sculpt_paint/paint_undo.c	2011-09-26 18:51:10 UTC (rev 40581)
@@ -34,6 +34,7 @@
 
 #include "BLI_listbase.h"
 #include "BLI_utildefines.h"
+#include "BLI_string.h"
 
 #include "DNA_userdef_types.h"
 
@@ -106,7 +107,7 @@
 	BLI_addtail(&stack->elems, uel);
 
 	/* name can be a dynamic string */
-	strncpy(uel->name, name, MAXUNDONAME-1);
+	BLI_strncpy(uel->name, name, sizeof(uel->name));
 	
 	/* limit amount to the maximum amount*/
 	nr= 0;

Modified: trunk/blender/source/blender/editors/space_sequencer/sequencer_select.c
===================================================================
--- trunk/blender/source/blender/editors/space_sequencer/sequencer_select.c	2011-09-26 17:32:50 UTC (rev 40580)
+++ trunk/blender/source/blender/editors/space_sequencer/sequencer_select.c	2011-09-26 18:51:10 UTC (rev 40581)
@@ -169,11 +169,11 @@
 
 	if((seq->type==SEQ_IMAGE) || (seq->type==SEQ_MOVIE)) {
 		if(seq->strip)
-			strncpy(ed->act_imagedir, seq->strip->dir, FILE_MAXDIR-1);
+			BLI_strncpy(ed->act_imagedir, seq->strip->dir, FILE_MAXDIR);
 	}
 	else if(seq->type==SEQ_SOUND) {
 		if(seq->strip)
-			strncpy(ed->act_sounddir, seq->strip->dir, FILE_MAXDIR-1);
+			BLI_strncpy(ed->act_sounddir, seq->strip->dir, FILE_MAXDIR);
 	}
 	seq->flag|= SELECT;
 	recurs_sel_seq(seq);
@@ -389,12 +389,12 @@
 	
 			if ((seq->type == SEQ_IMAGE) || (seq->type == SEQ_MOVIE)) {
 				if(seq->strip) {
-					strncpy(ed->act_imagedir, seq->strip->dir, FILE_MAXDIR-1);
+					BLI_strncpy(ed->act_imagedir, seq->strip->dir, FILE_MAXDIR);
 				}
 			} else
 			if (seq->type == SEQ_SOUND) {

@@ Diff output truncated at 10240 characters. @@



More information about the Bf-blender-cvs mailing list