diff options
author | Campbell Barton <ideasman42@gmail.com> | 2010-11-05 10:35:21 +0300 |
---|---|---|
committer | Campbell Barton <ideasman42@gmail.com> | 2010-11-05 10:35:21 +0300 |
commit | e179c92a278160ad3a1523a17ef272f6f3547f46 (patch) | |
tree | 743ba7ec0ac67b6afc202cdd7a5d063d6ee617ae /source/blender/blenkernel/intern | |
parent | 0ebdbdac00fda4ceb7f8a53e3b944575a8d76133 (diff) |
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
Diffstat (limited to 'source/blender/blenkernel/intern')
-rw-r--r-- | source/blender/blenkernel/intern/action.c | 8 | ||||
-rw-r--r-- | source/blender/blenkernel/intern/anim_sys.c | 11 | ||||
-rw-r--r-- | source/blender/blenkernel/intern/armature.c | 2 | ||||
-rw-r--r-- | source/blender/blenkernel/intern/blender.c | 4 | ||||
-rw-r--r-- | source/blender/blenkernel/intern/constraint.c | 2 | ||||
-rw-r--r-- | source/blender/blenkernel/intern/curve.c | 2 | ||||
-rw-r--r-- | source/blender/blenkernel/intern/font.c | 2 | ||||
-rw-r--r-- | source/blender/blenkernel/intern/ipo.c | 6 | ||||
-rw-r--r-- | source/blender/blenkernel/intern/library.c | 2 |
9 files changed, 18 insertions, 21 deletions
diff --git a/source/blender/blenkernel/intern/action.c b/source/blender/blenkernel/intern/action.c index 902807126c9..227f2eadf4c 100644 --- a/source/blender/blenkernel/intern/action.c +++ b/source/blender/blenkernel/intern/action.c @@ -408,7 +408,7 @@ bPoseChannel *verify_pose_channel(bPose *pose, const char *name) /* 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 @@ void pose_add_group (Object *ob) 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 @@ void what_does_obaction (Scene *UNUSED(scene), Object *ob, Object *workob, bPose 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) { diff --git a/source/blender/blenkernel/intern/anim_sys.c b/source/blender/blenkernel/intern/anim_sys.c index e03799ff938..febe8005317 100644 --- a/source/blender/blenkernel/intern/anim_sys.c +++ b/source/blender/blenkernel/intern/anim_sys.c @@ -614,12 +614,9 @@ KeyingSet *BKE_keyingset_add (ListBase *list, const char name[], short flag, sho /* 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 @@ KS_Path *BKE_keyingset_add_path (KeyingSet *ks, ID *id, const char group_name[], 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) diff --git a/source/blender/blenkernel/intern/armature.c b/source/blender/blenkernel/intern/armature.c index 3bec79eb352..ea01421a0ea 100644 --- a/source/blender/blenkernel/intern/armature.c +++ b/source/blender/blenkernel/intern/armature.c @@ -260,7 +260,7 @@ int bone_autoside_name (char *name, int UNUSED(strip_number), short axis, float 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. diff --git a/source/blender/blenkernel/intern/blender.c b/source/blender/blenkernel/intern/blender.c index 72d194e4d79..9b2c1805069 100644 --- a/source/blender/blenkernel/intern/blender.c +++ b/source/blender/blenkernel/intern/blender.c @@ -460,13 +460,13 @@ static UndoElem *curundo= NULL; 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; diff --git a/source/blender/blenkernel/intern/constraint.c b/source/blender/blenkernel/intern/constraint.c index bf694732b46..a561df49e94 100644 --- a/source/blender/blenkernel/intern/constraint.c +++ b/source/blender/blenkernel/intern/constraint.c @@ -674,7 +674,7 @@ static void default_get_tarmat (bConstraint *con, bConstraintOb *cob, bConstrain 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; \ \ diff --git a/source/blender/blenkernel/intern/curve.c b/source/blender/blenkernel/intern/curve.c index a7dd80bff4d..b6b6dde3cdc 100644 --- a/source/blender/blenkernel/intern/curve.c +++ b/source/blender/blenkernel/intern/curve.c @@ -155,7 +155,7 @@ Curve *add_curve(char *name, int type) 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; diff --git a/source/blender/blenkernel/intern/font.c b/source/blender/blenkernel/intern/font.c index 0b27aaeb0ba..5fdb9549179 100644 --- a/source/blender/blenkernel/intern/font.c +++ b/source/blender/blenkernel/intern/font.c @@ -394,7 +394,7 @@ VFont *load_vfont(char *name) /* 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)); diff --git a/source/blender/blenkernel/intern/ipo.c b/source/blender/blenkernel/intern/ipo.c index 5ed6beaf376..7914bc2b640 100644 --- a/source/blender/blenkernel/intern/ipo.c +++ b/source/blender/blenkernel/intern/ipo.c @@ -1017,13 +1017,13 @@ static ChannelDriver *idriver_to_cdriver (IpoDriver *idriver) 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 @@ static ChannelDriver *idriver_to_cdriver (IpoDriver *idriver) 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 */ } diff --git a/source/blender/blenkernel/intern/library.c b/source/blender/blenkernel/intern/library.c index 4227c633c0b..ed9907b6869 100644 --- a/source/blender/blenkernel/intern/library.c +++ b/source/blender/blenkernel/intern/library.c @@ -1365,7 +1365,7 @@ void rename_id(ID *id, char *name) { 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); |