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:
authorDalai Felinto <dfelinto@gmail.com>2017-01-02 13:31:03 +0300
committerDalai Felinto <dfelinto@gmail.com>2017-01-02 13:31:03 +0300
commitd78f51a4c239d9e4ab659c3386b6262ff8a4b8df (patch)
tree53b4c3c1b7393c3270d5deb2eff94dac653f44d6 /source/blender/blenkernel/intern/library.c
parentfb20cbe04cf4277c40d2a395d0d4cc3aee3707ed (diff)
parent13174df534e76c528e9d4f959eebbc6481ebf9f1 (diff)
Merge remote-tracking branch 'origin/master' into blender2.8
Diffstat (limited to 'source/blender/blenkernel/intern/library.c')
-rw-r--r--source/blender/blenkernel/intern/library.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/source/blender/blenkernel/intern/library.c b/source/blender/blenkernel/intern/library.c
index 038504040d7..056e302eee2 100644
--- a/source/blender/blenkernel/intern/library.c
+++ b/source/blender/blenkernel/intern/library.c
@@ -1431,14 +1431,18 @@ static bool check_for_dupid(ListBase *lb, ID *id, char *name)
/* if new name will be too long, truncate it */
if (nr > 999 && left_len > (MAX_ID_NAME - 8)) { /* assumption: won't go beyond 9999 */
- left[MAX_ID_NAME - 8] = 0;
+ left[MAX_ID_NAME - 8] = '\0';
left_len = MAX_ID_NAME - 8;
}
else if (left_len > (MAX_ID_NAME - 7)) {
- left[MAX_ID_NAME - 7] = 0;
+ left[MAX_ID_NAME - 7] = '\0';
left_len = MAX_ID_NAME - 7;
}
+ /* Code above may have generated invalid utf-8 string, due to raw truncation.
+ * Ensure we get a valid one now! */
+ left_len -= BLI_utf8_invalid_strip(left, left_len);
+
for (idtest = lb->first; idtest; idtest = idtest->next) {
int nrtest;
if ( (id != idtest) &&