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 <ideasman42@gmail.com>2011-08-14 18:43:11 +0400
committerCampbell Barton <ideasman42@gmail.com>2011-08-14 18:43:11 +0400
commit02b24e655bdb2de67987c0332c78f16d0f557e48 (patch)
treeaa74d6321e2cbe6ea6a38dc1198f01eeecec9193
parent181104261d8b1d95744ebdf731a93646b6326aed (diff)
fix for bug where changing movie filepaths would reset the strip length.
also fixed possible & unlikely buffer overflow.
-rw-r--r--source/blender/blenkernel/intern/sequencer.c1
-rw-r--r--source/blender/editors/space_sequencer/sequencer_edit.c5
-rw-r--r--source/blender/imbuf/intern/anim_movie.c2
3 files changed, 6 insertions, 2 deletions
diff --git a/source/blender/blenkernel/intern/sequencer.c b/source/blender/blenkernel/intern/sequencer.c
index d6a152a5280..3aebbea789f 100644
--- a/source/blender/blenkernel/intern/sequencer.c
+++ b/source/blender/blenkernel/intern/sequencer.c
@@ -699,6 +699,7 @@ void reload_sequence_new_file(Scene *scene, Sequence * seq, int lock_range)
seq->len = 0;
}
seq->strip->len = seq->len;
+ break;
case SEQ_SOUND:
#ifdef WITH_AUDASPACE
if(!seq->sound)
diff --git a/source/blender/editors/space_sequencer/sequencer_edit.c b/source/blender/editors/space_sequencer/sequencer_edit.c
index 447426aed13..ee5eb12f858 100644
--- a/source/blender/editors/space_sequencer/sequencer_edit.c
+++ b/source/blender/editors/space_sequencer/sequencer_edit.c
@@ -2870,12 +2870,15 @@ static int sequencer_change_path_exec(bContext *C, wmOperator *op)
else {
/* lame, set rna filepath */
PointerRNA seq_ptr;
+ PropertyRNA *prop;
char filepath[FILE_MAX];
RNA_pointer_create(&scene->id, &RNA_Sequence, seq, &seq_ptr);
RNA_string_get(op->ptr, "filepath", filepath);
- RNA_string_set(&seq_ptr, "filepath", filepath);
+ prop= RNA_struct_find_property(&seq_ptr, "filepath");
+ RNA_property_string_set(&seq_ptr, prop, filepath);
+ RNA_property_update(C, &seq_ptr, prop);
}
WM_event_add_notifier(C, NC_SCENE|ND_SEQUENCER, scene);
diff --git a/source/blender/imbuf/intern/anim_movie.c b/source/blender/imbuf/intern/anim_movie.c
index 919b0eb0c29..8b0104fcdca 100644
--- a/source/blender/imbuf/intern/anim_movie.c
+++ b/source/blender/imbuf/intern/anim_movie.c
@@ -355,7 +355,7 @@ struct anim * IMB_open_anim( const char * name, int ib_flags) {
anim = (struct anim*)MEM_callocN(sizeof(struct anim), "anim struct");
if (anim != NULL) {
- strcpy(anim->name, name); /* fixme: possible buffer overflow here? */
+ BLI_strncpy(anim->name, name, sizeof(anim->name));
anim->ib_flags = ib_flags;
}
return(anim);