fix for bug where changing movie filepaths would reset the strip length.

also fixed possible & unlikely buffer overflow.
This commit is contained in:
Campbell Barton 2011-08-14 14:43:11 +00:00
parent 181104261d
commit 02b24e655b
3 changed files with 6 additions and 2 deletions

@ -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)

@ -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);

@ -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);