diff mbox series

[FFmpeg-devel] avfilter/pad: improve error check for w and h

Message ID 20200115155535.12383-1-ffmpeg@gyani.pro
State New
Headers show
Series [FFmpeg-devel] avfilter/pad: improve error check for w and h
Related show

Checks

Context Check Description
andriy/ffmpeg-patchwork pending
andriy/ffmpeg-patchwork success Applied patch
andriy/ffmpeg-patchwork success Configure finished
andriy/ffmpeg-patchwork success Make finished
andriy/ffmpeg-patchwork success Make fate finished

Commit Message

Gyan Doshi Jan. 15, 2020, 3:55 p.m. UTC
Target dimensions have to cover entire input.
---
 libavfilter/vf_pad.c | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

Comments

Gyan Doshi Jan. 18, 2020, 6:51 a.m. UTC | #1
On 15-01-2020 09:25 pm, Gyan Doshi wrote:
> Target dimensions have to cover entire input.
> ---
>   libavfilter/vf_pad.c | 8 ++++----
>   1 file changed, 4 insertions(+), 4 deletions(-)
>
> diff --git a/libavfilter/vf_pad.c b/libavfilter/vf_pad.c
> index 186d3f028d..e86292eaa2 100644
> --- a/libavfilter/vf_pad.c
> +++ b/libavfilter/vf_pad.c
> @@ -178,14 +178,14 @@ static int config_input(AVFilterLink *inlink)
>       if (s->y < 0 || s->y + inlink->h > s->h)
>           s->y = var_values[VAR_Y] = (s->h - inlink->h) / 2;
>   
> +    s->w    = ff_draw_round_to_sub(&s->draw, 0, -1, s->w);
> +    s->h    = ff_draw_round_to_sub(&s->draw, 1, -1, s->h);
>       /* sanity check params */
> -    if (s->w < 0 || s->h < 0) {
> -        av_log(ctx, AV_LOG_ERROR, "Negative values are not acceptable.\n");
> +    if (s->w < inlink->w || s->h < inlink->h) {
> +        av_log(ctx, AV_LOG_ERROR, "Padded dimensions cannot be smaller than input dimensions.\n");
>           return AVERROR(EINVAL);
>       }
>   
> -    s->w    = ff_draw_round_to_sub(&s->draw, 0, -1, s->w);
> -    s->h    = ff_draw_round_to_sub(&s->draw, 1, -1, s->h);
>       s->x    = ff_draw_round_to_sub(&s->draw, 0, -1, s->x);
>       s->y    = ff_draw_round_to_sub(&s->draw, 1, -1, s->y);
>       s->in_w = ff_draw_round_to_sub(&s->draw, 0, -1, inlink->w);

Will push in a day.

Gyan
Gyan Doshi Jan. 19, 2020, 5:49 a.m. UTC | #2
On 18-01-2020 12:21 pm, Gyan wrote:
>
>
> On 15-01-2020 09:25 pm, Gyan Doshi wrote:
>> Target dimensions have to cover entire input.
>> ---
>>   libavfilter/vf_pad.c | 8 ++++----
>>   1 file changed, 4 insertions(+), 4 deletions(-)
>>
>> diff --git a/libavfilter/vf_pad.c b/libavfilter/vf_pad.c
>> index 186d3f028d..e86292eaa2 100644
>> --- a/libavfilter/vf_pad.c
>> +++ b/libavfilter/vf_pad.c
>> @@ -178,14 +178,14 @@ static int config_input(AVFilterLink *inlink)
>>       if (s->y < 0 || s->y + inlink->h > s->h)
>>           s->y = var_values[VAR_Y] = (s->h - inlink->h) / 2;
>>   +    s->w    = ff_draw_round_to_sub(&s->draw, 0, -1, s->w);
>> +    s->h    = ff_draw_round_to_sub(&s->draw, 1, -1, s->h);
>>       /* sanity check params */
>> -    if (s->w < 0 || s->h < 0) {
>> -        av_log(ctx, AV_LOG_ERROR, "Negative values are not 
>> acceptable.\n");
>> +    if (s->w < inlink->w || s->h < inlink->h) {
>> +        av_log(ctx, AV_LOG_ERROR, "Padded dimensions cannot be 
>> smaller than input dimensions.\n");
>>           return AVERROR(EINVAL);
>>       }
>>   -    s->w    = ff_draw_round_to_sub(&s->draw, 0, -1, s->w);
>> -    s->h    = ff_draw_round_to_sub(&s->draw, 1, -1, s->h);
>>       s->x    = ff_draw_round_to_sub(&s->draw, 0, -1, s->x);
>>       s->y    = ff_draw_round_to_sub(&s->draw, 1, -1, s->y);
>>       s->in_w = ff_draw_round_to_sub(&s->draw, 0, -1, inlink->w);
>
> Will push in a day.

Pushed as 4de2106fbf5301e0f504849f098abc3057f87599

Gyan
diff mbox series

Patch

diff --git a/libavfilter/vf_pad.c b/libavfilter/vf_pad.c
index 186d3f028d..e86292eaa2 100644
--- a/libavfilter/vf_pad.c
+++ b/libavfilter/vf_pad.c
@@ -178,14 +178,14 @@  static int config_input(AVFilterLink *inlink)
     if (s->y < 0 || s->y + inlink->h > s->h)
         s->y = var_values[VAR_Y] = (s->h - inlink->h) / 2;
 
+    s->w    = ff_draw_round_to_sub(&s->draw, 0, -1, s->w);
+    s->h    = ff_draw_round_to_sub(&s->draw, 1, -1, s->h);
     /* sanity check params */
-    if (s->w < 0 || s->h < 0) {
-        av_log(ctx, AV_LOG_ERROR, "Negative values are not acceptable.\n");
+    if (s->w < inlink->w || s->h < inlink->h) {
+        av_log(ctx, AV_LOG_ERROR, "Padded dimensions cannot be smaller than input dimensions.\n");
         return AVERROR(EINVAL);
     }
 
-    s->w    = ff_draw_round_to_sub(&s->draw, 0, -1, s->w);
-    s->h    = ff_draw_round_to_sub(&s->draw, 1, -1, s->h);
     s->x    = ff_draw_round_to_sub(&s->draw, 0, -1, s->x);
     s->y    = ff_draw_round_to_sub(&s->draw, 1, -1, s->y);
     s->in_w = ff_draw_round_to_sub(&s->draw, 0, -1, inlink->w);