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:02 +0300
committerCampbell Barton <campbell@blender.org>2022-04-26 06:46:02 +0300
commit3221766820c60057f7cc2e8e0b1c30f9b895c8de (patch)
tree09ef22912d3da37d8accc77d45b0006cd45e8bf7
parenta003547a3792a5208ff7994694f9fa8c9ffb380a (diff)
Fix string escaping in override versioning and modifier renaming
-rw-r--r--source/blender/blenloader/intern/versioning_300.c6
-rw-r--r--source/blender/makesrna/intern/rna_gpencil_modifier.c15
2 files changed, 14 insertions, 7 deletions
diff --git a/source/blender/blenloader/intern/versioning_300.c b/source/blender/blenloader/intern/versioning_300.c
index f0055fb73ac..baf4c6ef710 100644
--- a/source/blender/blenloader/intern/versioning_300.c
+++ b/source/blender/blenloader/intern/versioning_300.c
@@ -1295,8 +1295,10 @@ static void version_liboverride_rnacollections_insertion_object(Object *object)
if (object->pose != NULL) {
LISTBASE_FOREACH (bPoseChannel *, pchan, &object->pose->chanbase) {
- char rna_path[FILE_MAXFILE];
- BLI_snprintf(rna_path, sizeof(rna_path), "pose.bones[\"%s\"].constraints", pchan->name);
+ char rna_path[26 + (sizeof(pchan->name) * 2) + 1];
+ char name_esc[sizeof(pchan->name) * 2];
+ BLI_str_escape(name_esc, pchan->name, sizeof(name_esc));
+ SNPRINTF(rna_path, "pose.bones[\"%s\"].constraints", name_esc);
op = BKE_lib_override_library_property_find(liboverride, rna_path);
if (op != NULL) {
version_liboverride_rnacollections_insertion_object_constraints(&pchan->constraints, op);
diff --git a/source/blender/makesrna/intern/rna_gpencil_modifier.c b/source/blender/makesrna/intern/rna_gpencil_modifier.c
index 04a9a6b169e..1f9bb972923 100644
--- a/source/blender/makesrna/intern/rna_gpencil_modifier.c
+++ b/source/blender/makesrna/intern/rna_gpencil_modifier.c
@@ -754,11 +754,13 @@ static char *rna_DashGpencilModifierSegment_path(PointerRNA *ptr)
BLI_assert(dmd != NULL);
- char name_esc[sizeof(dmd->modifier.name) * 2 + 1];
-
+ char name_esc[sizeof(dmd->modifier.name) * 2];
BLI_str_escape(name_esc, dmd->modifier.name, sizeof(name_esc));
- return BLI_sprintfN("grease_pencil_modifiers[\"%s\"].segments[\"%s\"]", name_esc, ds->name);
+ char ds_name_esc[sizeof(ds->name) * 2];
+ BLI_str_escape(ds_name_esc, ds->name, sizeof(ds_name_esc));
+
+ return BLI_sprintfN("grease_pencil_modifiers[\"%s\"].segments[\"%s\"]", name_esc, ds_name_esc);
}
static bool dash_segment_name_exists_fn(void *arg, const char *name)
@@ -785,8 +787,11 @@ static void rna_DashGpencilModifierSegment_name_set(PointerRNA *ptr, const char
BLI_uniquename_cb(
dash_segment_name_exists_fn, ds->dmd, "Segment", '.', ds->name, sizeof(ds->name));
- char prefix[256];
- sprintf(prefix, "grease_pencil_modifiers[\"%s\"].segments", ds->dmd->modifier.name);
+ char name_esc[sizeof(ds->dmd->modifier.name) * 2];
+ BLI_str_escape(name_esc, ds->dmd->modifier.name, sizeof(name_esc));
+
+ char prefix[36 + sizeof(name_esc) + 1];
+ SNPRINTF(prefix, "grease_pencil_modifiers[\"%s\"].segments", name_esc);
/* Fix all the animation data which may link to this. */
BKE_animdata_fix_paths_rename_all(NULL, prefix, oldname, ds->name);