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

Reply via email to