[Bf-blender-cvs] [b243b4f] master: Fix for inorrect use of BLI_utf8_invalid_strip, add assert to prevent it happening again.

Campbell Barton noreply at git.blender.org
Wed Jan 8 04:47:02 CET 2014


Commit: b243b4fe4053341b26df698f41c87b80cae8f484
Author: Campbell Barton
Date:   Wed Jan 8 14:46:06 2014 +1100
https://developer.blender.org/rBb243b4fe4053341b26df698f41c87b80cae8f484

Fix for inorrect use of BLI_utf8_invalid_strip, add assert to prevent it happening again.

===================================================================

M	source/blender/blenkernel/intern/sequencer.c
M	source/blender/blenlib/intern/string_utf8.c
M	source/blender/editors/util/numinput.c

===================================================================

diff --git a/source/blender/blenkernel/intern/sequencer.c b/source/blender/blenkernel/intern/sequencer.c
index dd2bd43..d1d8800 100644
--- a/source/blender/blenkernel/intern/sequencer.c
+++ b/source/blender/blenkernel/intern/sequencer.c
@@ -4110,7 +4110,7 @@ static void seq_load_apply(Scene *scene, Sequence *seq, SeqLoadInfo *seq_load)
 {
 	if (seq) {
 		BLI_strncpy_utf8(seq->name + 2, seq_load->name, sizeof(seq->name) - 2);
-		BLI_utf8_invalid_strip(seq->name + 2, sizeof(seq->name) - 2);
+		BLI_utf8_invalid_strip(seq->name + 2, strlen(seq->name + 2));
 		BKE_sequence_base_unique_name_recursive(&scene->ed->seqbase, seq);
 
 		if (seq_load->flag & SEQ_LOAD_FRAME_ADVANCE) {
diff --git a/source/blender/blenlib/intern/string_utf8.c b/source/blender/blenlib/intern/string_utf8.c
index 225b3c5..e565d6e 100644
--- a/source/blender/blenlib/intern/string_utf8.c
+++ b/source/blender/blenlib/intern/string_utf8.c
@@ -137,6 +137,8 @@ int BLI_utf8_invalid_strip(char *str, int length)
 {
 	int bad_char, tot = 0;
 
+	BLI_assert(str[length] == '\0');
+
 	while ((bad_char = BLI_utf8_invalid_byte(str, length)) != -1) {
 		str += bad_char;
 		length -= bad_char;
diff --git a/source/blender/editors/util/numinput.c b/source/blender/editors/util/numinput.c
index 8b98d00..78499da 100644
--- a/source/blender/editors/util/numinput.c
+++ b/source/blender/editors/util/numinput.c
@@ -131,7 +131,7 @@ void outputNumInput(NumInput *n, char *str)
 			BLI_snprintf(&str[j * ln], ln, "%sNONE%s", cur, cur);
 		}
 		/* We might have cut some multi-bytes utf8 chars (e.g. trailing '°' of degrees values can become only 'A')... */
-		BLI_utf8_invalid_strip(&str[j * ln], ln);
+		BLI_utf8_invalid_strip(&str[j * ln], strlen(&str[j * ln]));
 	}
 }




More information about the Bf-blender-cvs mailing list