On 2/14/2018 2:17 AM, wm4 wrote: > On Tue, 13 Feb 2018 22:27:49 -0300 > James Almer <jamr...@gmail.com> wrote: > >> This makes sure no field is ever used uninitialized. >> >> Signed-off-by: James Almer <jamr...@gmail.com> >> --- >> I think i prefer this one. >> >> libavformat/aviobuf.c | 4 +++- >> 1 file changed, 3 insertions(+), 1 deletion(-) >> >> diff --git a/libavformat/aviobuf.c b/libavformat/aviobuf.c >> index 86eb6579f4..d63db3897f 100644 >> --- a/libavformat/aviobuf.c >> +++ b/libavformat/aviobuf.c >> @@ -87,6 +87,8 @@ int ffio_init_context(AVIOContext *s, >> int (*write_packet)(void *opaque, uint8_t *buf, int >> buf_size), >> int64_t (*seek)(void *opaque, int64_t offset, int whence)) >> { >> + memset(s, 0, sizeof(AVIOContext)); >> + >> s->buffer = buffer; >> s->orig_buffer_size = >> s->buffer_size = buffer_size; >> @@ -135,7 +137,7 @@ AVIOContext *avio_alloc_context( >> int (*write_packet)(void *opaque, uint8_t *buf, int >> buf_size), >> int64_t (*seek)(void *opaque, int64_t offset, int whence)) >> { >> - AVIOContext *s = av_mallocz(sizeof(AVIOContext)); >> + AVIOContext *s = av_malloc(sizeof(AVIOContext)); >> if (!s) >> return NULL; >> ffio_init_context(s, buffer, buffer_size, write_flag, opaque, > > There are a lot of calls to ffio_init_context() - is it sure that there > are no fields that must be preserved?
I assume no. There are some fields that are currently not set by ffio_init_context(), including the checksum ones that created the problem at hand, but i don't think any should be preserved in case the context is reused. And for that matter, is there any code in libavformat that reuses these contexts at all? This init function is internal, so API users are unable to reuse AVIOContexts, and avio_alloc_context() always zero initializes them. > > I'd probably prefer "*s = (AVIOContext){0};", but that's just me. > _______________________________________________ > ffmpeg-devel mailing list > ffmpeg-devel@ffmpeg.org > http://ffmpeg.org/mailman/listinfo/ffmpeg-devel > _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-devel