Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCampbell Barton <campbell@blender.org>2022-04-26 06:46:04 +0300
committerCampbell Barton <campbell@blender.org>2022-04-26 06:46:04 +0300
commit07e2bd443ea2b3aadb78bcbb8b74950917a0181d (patch)
treed3b99acbeaf96b4d04cec82b1e27ca96480157cc
parent3221766820c60057f7cc2e8e0b1c30f9b895c8de (diff)
Fix bone "auto-name by axis" failure to clip long names
Failure to clip automatic-names meant named could end with a "." for e.g. Error in [0] meant the clipped text was copied then immediately overwritten. [0]: 354e6b9c189bb6cea57577ba3a8e7fb7ca28a796
-rw-r--r--source/blender/blenkernel/intern/armature.c8
1 files changed, 3 insertions, 5 deletions
diff --git a/source/blender/blenkernel/intern/armature.c b/source/blender/blenkernel/intern/armature.c
index 0ed322d386c..dfe3d9cc310 100644
--- a/source/blender/blenkernel/intern/armature.c
+++ b/source/blender/blenkernel/intern/armature.c
@@ -813,11 +813,9 @@ bool bone_autoside_name(
}
}
- if ((MAXBONENAME - len) < strlen(extension) + 1) { /* add 1 for the '.' */
- strncpy(name, basename, len - strlen(extension));
- }
-
- BLI_snprintf(name, MAXBONENAME, "%s.%s", basename, extension);
+ /* Subtract 1 from #MAXBONENAME for the null byte. Add 1 to the extension for the '.' */
+ const int basename_maxlen = (MAXBONENAME - 1) - (1 + strlen(extension));
+ BLI_snprintf(name, MAXBONENAME, "%.*s.%s", basename_maxlen, basename, extension);
return true;
}