[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [41125] trunk/blender/source: strcpy() --> BLI_strncpy(), where source strings are not fixed and target size is known .
Campbell Barton
ideasman42 at gmail.com
Thu Oct 20 01:10:55 CEST 2011
Revision: 41125
http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=41125
Author: campbellbarton
Date: 2011-10-19 23:10:54 +0000 (Wed, 19 Oct 2011)
Log Message:
-----------
strcpy() --> BLI_strncpy(), where source strings are not fixed and target size is known.
Modified Paths:
--------------
trunk/blender/source/blender/blenkernel/BKE_packedFile.h
trunk/blender/source/blender/blenkernel/intern/image.c
trunk/blender/source/blender/blenkernel/intern/modifier.c
trunk/blender/source/blender/blenkernel/intern/node.c
trunk/blender/source/blender/blenkernel/intern/packedFile.c
trunk/blender/source/blender/blenkernel/intern/pointcache.c
trunk/blender/source/blender/blenkernel/intern/property.c
trunk/blender/source/blender/blenkernel/intern/sequencer.c
trunk/blender/source/blender/blenkernel/intern/sound.c
trunk/blender/source/blender/blenkernel/intern/texture.c
trunk/blender/source/blender/blenlib/intern/fileops.c
trunk/blender/source/blender/blenlib/intern/freetypefont.c
trunk/blender/source/blender/blenlib/intern/storage.c
trunk/blender/source/blender/blenloader/BLO_readfile.h
trunk/blender/source/blender/blenloader/BLO_runtime.h
trunk/blender/source/blender/blenloader/intern/readblenentry.c
trunk/blender/source/blender/blenloader/intern/readfile.c
trunk/blender/source/blender/blenloader/intern/runtime.c
trunk/blender/source/blender/collada/AnimationImporter.cpp
trunk/blender/source/blender/editors/armature/editarmature.c
trunk/blender/source/blender/editors/armature/poselib.c
trunk/blender/source/blender/editors/gpencil/editaction_gpencil.c
trunk/blender/source/blender/editors/interface/resources.c
trunk/blender/source/blender/editors/object/object_constraint.c
trunk/blender/source/blender/editors/object/object_relations.c
trunk/blender/source/blender/editors/object/object_vgroup.c
trunk/blender/source/blender/editors/render/render_preview.c
trunk/blender/source/blender/editors/screen/screendump.c
trunk/blender/source/blender/editors/sculpt_paint/paint_image.c
trunk/blender/source/blender/editors/sculpt_paint/sculpt_undo.c
trunk/blender/source/blender/editors/space_sequencer/sequencer_add.c
trunk/blender/source/blender/editors/space_sequencer/sequencer_edit.c
trunk/blender/source/blender/imbuf/intern/anim_movie.c
trunk/blender/source/blender/makesrna/intern/rna_lattice.c
trunk/blender/source/blender/makesrna/intern/rna_object_force.c
trunk/blender/source/blender/modifiers/intern/MOD_solidify.c
trunk/blender/source/blender/nodes/intern/node_common.c
trunk/blender/source/blender/render/intern/source/renderdatabase.c
trunk/blender/source/gameengine/GamePlayer/ghost/GPG_ghost.cpp
Modified: trunk/blender/source/blender/blenkernel/BKE_packedFile.h
===================================================================
--- trunk/blender/source/blender/blenkernel/BKE_packedFile.h 2011-10-19 23:04:48 UTC (rev 41124)
+++ trunk/blender/source/blender/blenkernel/BKE_packedFile.h 2011-10-19 23:10:54 UTC (rev 41125)
@@ -51,7 +51,7 @@
void packAll(struct Main *bmain, struct ReportList *reports);
/* unpack */
-char *unpackFile(struct ReportList *reports, char *abs_name, char *local_name, struct PackedFile *pf, int how);
+char *unpackFile(struct ReportList *reports, const char *abs_name, const char *local_name, struct PackedFile *pf, int how);
int unpackVFont(struct ReportList *reports, struct VFont *vfont, int how);
int unpackSound(struct Main *bmain, struct ReportList *reports, struct bSound *sound, int how);
int unpackImage(struct ReportList *reports, struct Image *ima, int how);
Modified: trunk/blender/source/blender/blenkernel/intern/image.c
===================================================================
--- trunk/blender/source/blender/blenkernel/intern/image.c 2011-10-19 23:04:48 UTC (rev 41124)
+++ trunk/blender/source/blender/blenkernel/intern/image.c 2011-10-19 23:10:54 UTC (rev 41125)
@@ -906,8 +906,8 @@
if (scene->r.stamp & R_STAMP_MARKER) {
char *name = scene_find_last_marker_name(scene, CFRA);
-
- if (name) strcpy(text, name);
+
+ if (name) BLI_strncpy(text, name, sizeof(text));
else strcpy(text, "<none>");
BLI_snprintf(stamp_data->marker, sizeof(stamp_data->marker), do_prefix ? "Marker %s":"%s", text);
@@ -980,7 +980,7 @@
if (scene->r.stamp & R_STAMP_SEQSTRIP) {
Sequence *seq= seq_foreground_frame_get(scene, scene->r.cfra);
- if (seq) strcpy(text, seq->name+2);
+ if (seq) BLI_strncpy(text, seq->name+2, sizeof(text));
else strcpy(text, "<none>");
BLI_snprintf(stamp_data->strip, sizeof(stamp_data->strip), do_prefix ? "Strip %s":"%s", text);
Modified: trunk/blender/source/blender/blenkernel/intern/modifier.c
===================================================================
--- trunk/blender/source/blender/blenkernel/intern/modifier.c 2011-10-19 23:04:48 UTC (rev 41124)
+++ trunk/blender/source/blender/blenkernel/intern/modifier.c 2011-10-19 23:10:54 UTC (rev 41125)
@@ -86,8 +86,8 @@
ModifierTypeInfo *mti = modifierType_getInfo(type);
ModifierData *md = MEM_callocN(mti->structSize, mti->structName);
- // FIXME: we need to make the name always be unique somehow...
- strcpy(md->name, mti->name);
+ /* note, this name must be made unique later */
+ BLI_strncpy(md->name, mti->name, sizeof(md->name));
md->type = type;
md->mode = eModifierMode_Realtime
Modified: trunk/blender/source/blender/blenkernel/intern/node.c
===================================================================
--- trunk/blender/source/blender/blenkernel/intern/node.c 2011-10-19 23:04:48 UTC (rev 41124)
+++ trunk/blender/source/blender/blenkernel/intern/node.c 2011-10-19 23:10:54 UTC (rev 41125)
@@ -374,7 +374,7 @@
/*node->typeinfo= MEM_dupallocN(ntype);*/
bNodeType *newtype= MEM_callocN(sizeof(bNodeType), "dynamic bNodeType");
*newtype= *ntype;
- strcpy(newtype->name, ntype->name);
+ BLI_strncpy(newtype->name, ntype->name, sizeof(newtype->name));
node->typeinfo= newtype;
}
}
Modified: trunk/blender/source/blender/blenkernel/intern/packedFile.c
===================================================================
--- trunk/blender/source/blender/blenkernel/intern/packedFile.c 2011-10-19 23:04:48 UTC (rev 41124)
+++ trunk/blender/source/blender/blenkernel/intern/packedFile.c 2011-10-19 23:10:54 UTC (rev 41125)
@@ -182,7 +182,7 @@
// convert relative filenames to absolute filenames
- strcpy(name, filename);
+ BLI_strncpy(name, filename, sizeof(name));
BLI_path_abs(name, basepath);
// open the file
@@ -240,7 +240,7 @@
}
-/*
+#if 0
// attempt to create a function that generates an unique filename
// this will work when all funtions in fileops.c understand relative filenames...
@@ -249,6 +249,7 @@
{
char tempname[FILE_MAXDIR + FILE_MAXFILE];
char *newname;
+ size_t len;
if (fop_exists(name)) {
for (number = 1; number <= 999; number++) {
@@ -258,14 +259,12 @@
}
}
}
-
- newname = mallocN(strlen(tempname) + 1, "find_new_name");
- strcpy(newname, tempname);
-
- return(newname);
+ len= strlen(tempname) + 1;
+ newname = MEM_mallocN(len, "find_new_name");
+ memcpy(newname, tempname, len * sizeof(char));
+ return newname;
}
-
-*/
+#endif
int writePackedFile(ReportList *reports, const char *filename, PackedFile *pf, int guimode)
{
@@ -277,12 +276,12 @@
if (guimode) {} //XXX waitcursor(1);
- strcpy(name, filename);
+ BLI_strncpy(name, filename, sizeof(name));
BLI_path_abs(name, G.main->name);
if (BLI_exists(name)) {
for (number = 1; number <= 999; number++) {
- sprintf(tempname, "%s.%03d_", name, number);
+ BLI_snprintf(tempname, sizeof(tempname), "%s.%03d_", name, number);
if (! BLI_exists(tempname)) {
if (BLI_copy_fileops(name, tempname) == RET_OK) {
remove_tmp = TRUE;
@@ -342,7 +341,7 @@
char buf[4096];
char name[FILE_MAXDIR + FILE_MAXFILE];
- strcpy(name, filename);
+ BLI_strncpy(name, filename, sizeof(name));
BLI_path_abs(name, G.main->name);
if (stat(name, &st)) {
@@ -392,9 +391,10 @@
*/
-char *unpackFile(ReportList *reports, char *abs_name, char *local_name, PackedFile *pf, int how)
+char *unpackFile(ReportList *reports, const char *abs_name, const char *local_name, PackedFile *pf, int how)
{
- char *newname = NULL, *temp = NULL;
+ char *newname = NULL;
+ const char *temp = NULL;
// char newabs[FILE_MAXDIR + FILE_MAXFILE];
// char newlocal[FILE_MAXDIR + FILE_MAXFILE];
@@ -437,12 +437,11 @@
}
if (temp) {
- newname = MEM_mallocN(strlen(temp) + 1, "unpack_file newname");
- strcpy(newname, temp);
+ newname= BLI_strdup(temp);
}
}
- return (newname);
+ return newname;
}
@@ -453,17 +452,17 @@
int ret_value = RET_ERROR;
if (vfont != NULL) {
- strcpy(localname, vfont->name);
+ BLI_strncpy(localname, vfont->name, sizeof(localname));
BLI_splitdirstring(localname, fi);
- sprintf(localname, "//fonts/%s", fi);
+ BLI_snprintf(localname, sizeof(localname), "//fonts/%s", fi);
newname = unpackFile(reports, vfont->name, localname, vfont->packedfile, how);
if (newname != NULL) {
ret_value = RET_OK;
freePackedFile(vfont->packedfile);
vfont->packedfile = NULL;
- strcpy(vfont->name, newname);
+ BLI_strncpy(vfont->name, newname, sizeof(vfont->name));
MEM_freeN(newname);
}
}
@@ -478,13 +477,13 @@
int ret_value = RET_ERROR;
if (sound != NULL) {
- strcpy(localname, sound->name);
+ BLI_strncpy(localname, sound->name, sizeof(localname));
BLI_splitdirstring(localname, fi);
- sprintf(localname, "//sounds/%s", fi);
+ BLI_snprintf(localname, sizeof(localname), "//sounds/%s", fi);
newname = unpackFile(reports, sound->name, localname, sound->packedfile, how);
if (newname != NULL) {
- strcpy(sound->name, newname);
+ BLI_strncpy(sound->name, newname, sizeof(sound->name));
MEM_freeN(newname);
freePackedFile(sound->packedfile);
@@ -506,16 +505,16 @@
int ret_value = RET_ERROR;
if (ima != NULL) {
- strcpy(localname, ima->name);
+ BLI_strncpy(localname, ima->name, sizeof(localname));
BLI_splitdirstring(localname, fi);
- sprintf(localname, "//textures/%s", fi);
-
+ BLI_snprintf(localname, sizeof(localname), "//textures/%s", fi);
+
newname = unpackFile(reports, ima->name, localname, ima->packedfile, how);
if (newname != NULL) {
ret_value = RET_OK;
freePackedFile(ima->packedfile);
ima->packedfile = NULL;
- strcpy(ima->name, newname);
+ BLI_strncpy(ima->name, newname, sizeof(ima->name));
MEM_freeN(newname);
BKE_image_signal(ima, NULL, IMA_SIGNAL_RELOAD);
}
Modified: trunk/blender/source/blender/blenkernel/intern/pointcache.c
===================================================================
--- trunk/blender/source/blender/blenkernel/intern/pointcache.c 2011-10-19 23:04:48 UTC (rev 41124)
+++ trunk/blender/source/blender/blenkernel/intern/pointcache.c 2011-10-19 23:10:54 UTC (rev 41125)
@@ -2891,24 +2891,24 @@
char ext[MAX_PTCACHE_PATH];
/* save old name */
- strcpy(old_name, pid->cache->name);
+ BLI_strncpy(old_name, pid->cache->name, sizeof(old_name));
/* get "from" filename */
- strcpy(pid->cache->name, from);
+ BLI_strncpy(pid->cache->name, from, sizeof(pid->cache->name));
len = ptcache_filename(pid, old_filename, 0, 0, 0); /* no path */
ptcache_path(pid, path);
dir = opendir(path);
if(dir==NULL) {
- strcpy(pid->cache->name, old_name);
+ BLI_strncpy(pid->cache->name, old_name, sizeof(pid->cache->name));
return;
}
BLI_snprintf(ext, sizeof(ext), "_%02u"PTCACHE_EXT, pid->stack_index);
/* put new name into cache */
- strcpy(pid->cache->name, to);
+ BLI_strncpy(pid->cache->name, to, sizeof(pid->cache->name));
while ((de = readdir(dir)) != NULL) {
if (strstr(de->d_name, ext)) { /* do we have the right extension?*/
@@ -2963,7 +2963,7 @@
if(cache->index >= 0)
BLI_snprintf(ext, sizeof(ext), "_%02d"PTCACHE_EXT, cache->index);
else
- strcpy(ext, PTCACHE_EXT);
+ BLI_strncpy(ext, PTCACHE_EXT, sizeof(ext));
while ((de = readdir(dir)) != NULL) {
if (strstr(de->d_name, ext)) { /* do we have the right extension?*/
Modified: trunk/blender/source/blender/blenkernel/intern/property.c
===================================================================
--- trunk/blender/source/blender/blenkernel/intern/property.c 2011-10-19 23:04:48 UTC (rev 41124)
+++ trunk/blender/source/blender/blenkernel/intern/property.c 2011-10-19 23:10:54 UTC (rev 41125)
@@ -166,7 +166,7 @@
int i= 0;
/* strip numbers */
- strcpy(base_name, prop->name);
+ BLI_strncpy(base_name, prop->name, sizeof(base_name));
for(i= strlen(base_name)-1; (i>=0 && isdigit(base_name[i])); i--) {
base_name[i]= '\0';
}
@@ -178,7 +178,7 @@
strcat(new_name, num);
} while(get_property__internal(first, prop, new_name));
- strcpy(prop->name, new_name);
+ BLI_strncpy(prop->name, new_name, sizeof(prop->name));
}
}
}
@@ -257,7 +257,7 @@
*((float *)&prop->data)= (float)atof(str);
break;
case GPROP_STRING:
- strcpy(prop->poin, str);
+ strcpy(prop->poin, str); /* TODO - check size? */
break;
}
Modified: trunk/blender/source/blender/blenkernel/intern/sequencer.c
@@ Diff output truncated at 10240 characters. @@
More information about the Bf-blender-cvs
mailing list