[FFmpeg-devel] [PATCH] avfilter/vf_ssim: align temp size

Muhammad Faiz mfcc64 at gmail.com
Thu Aug 3 03:39:22 EEST 2017


On Wed, Aug 2, 2017 at 6:48 PM, Tobias Rapp <t.rapp at noa-archive.com> wrote:
> On 02.08.2017 12:31, Muhammad Faiz wrote:
>>
>> On Wed, Aug 2, 2017 at 2:10 PM, Tobias Rapp <t.rapp at noa-archive.com>
>> wrote:
>>>
>>> On 01.08.2017 17:01, Muhammad Faiz wrote:
>>>>
>>>>
>>>> Fix Ticket6519.
>>>>
>>>> Signed-off-by: Muhammad Faiz <mfcc64 at gmail.com>
>>>> ---
>>>>  libavfilter/vf_ssim.c | 2 +-
>>>>  1 file changed, 1 insertion(+), 1 deletion(-)
>>>>
>>>> diff --git a/libavfilter/vf_ssim.c b/libavfilter/vf_ssim.c
>>>> index c3c204268f..dfd276e015 100644
>>>> --- a/libavfilter/vf_ssim.c
>>>> +++ b/libavfilter/vf_ssim.c
>>>> @@ -402,7 +402,7 @@ static int config_input_ref(AVFilterLink *inlink)
>>>>      for (i = 0; i < s->nb_components; i++)
>>>>          s->coefs[i] = (double) s->planeheight[i] * s->planewidth[i] /
>>>> sum;
>>>>
>>>> -    s->temp = av_malloc_array((2 * inlink->w + 12), sizeof(*s->temp) *
>>>> (1
>>>> + (desc->comp[0].depth > 8)));
>>>> +    s->temp = av_malloc_array(FFALIGN(2 * inlink->w + 12, 64),
>>>> sizeof(*s->temp) * (1 + (desc->comp[0].depth > 8)));
>>>>      if (!s->temp)
>>>>          return AVERROR(ENOMEM);
>>>>      s->max = (1 << desc->comp[0].depth) - 1;
>>>>
>>>
>>> I confirm that the command doesn't crash anymore and the reports of
>>> "invalid
>>> read/write" in Valgrind are gone. However there are still some "use of
>>> uninitialized value" reports remaining. Maybe use av_mallocz_array?
>>
>>
>> Changed locally with av_mallocz_array.
>
>
> LGTM then. Thanks for the fix.

Seems that this doesn't fix all cases. It fails with width=344.
Will post new patch.

Thank's.


More information about the ffmpeg-devel mailing list