From 8c2550eed731cad11149da47c628cac1d8e4c67a Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Tue, 31 Jul 2012 10:34:42 +0000 Subject: prevent uninitialized memory use when writing avi's. --- source/blender/avi/intern/avi.c | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) (limited to 'source/blender/avi/intern') diff --git a/source/blender/avi/intern/avi.c b/source/blender/avi/intern/avi.c index f64b693fb1c..1c79c9b4237 100644 --- a/source/blender/avi/intern/avi.c +++ b/source/blender/avi/intern/avi.c @@ -965,11 +965,15 @@ AviError AVI_write_frame(AviMovie *movie, int frame_num, ...) /* Allocate the new memory for the index entry */ if (frame_num + 1 > movie->index_entries) { - temp = (AviIndexEntry *) MEM_mallocN((frame_num + 1) * - (movie->header->Streams + 1) * sizeof(AviIndexEntry), "newidxentry"); + const size_t entry_size = (movie->header->Streams + 1) * sizeof(AviIndexEntry); + if (movie->entries != NULL) { - memcpy(temp, movie->entries, movie->index_entries * (movie->header->Streams + 1) * sizeof(AviIndexEntry)); - MEM_freeN(movie->entries); + temp = (AviIndexEntry *)MEM_reallocN(movie->entries, (frame_num + 1) * entry_size); + /* clear new bytes */ + memset(&temp[movie->index_entries], 0, ((frame_num + 1) - movie->index_entries) * entry_size); + } + else { + temp = (AviIndexEntry *) MEM_callocN((frame_num + 1) * entry_size, "newidxentry"); } movie->entries = temp; -- cgit v1.2.3