On 05/22/2011 02:39 PM, Martin Storsjö wrote:

> This avoids doing a division by zero if the option wasn't found,
> or wasn't an option of an appropriate type.
> ---
>  libavutil/opt.c |    9 ++++++---
>  1 files changed, 6 insertions(+), 3 deletions(-)
> 
> diff --git a/libavutil/opt.c b/libavutil/opt.c
> index 57e3248..9e06b01 100644
> --- a/libavutil/opt.c
> +++ b/libavutil/opt.c
> @@ -290,7 +290,8 @@ double av_get_double(void *obj, const char *name, const 
> AVOption **o_out)
>      double num=1;
>      int den=1;
>  
> -    av_get_number(obj, name, o_out, &num, &den, &intnum);
> +    if (av_get_number(obj, name, o_out, &num, &den, &intnum) < 0)
> +        return -1;
>      return num*intnum/den;
>  }
>  
> @@ -300,7 +301,8 @@ AVRational av_get_q(void *obj, const char *name, const 
> AVOption **o_out)
>      double num=1;
>      int den=1;
>  
> -    av_get_number(obj, name, o_out, &num, &den, &intnum);
> +    if (av_get_number(obj, name, o_out, &num, &den, &intnum) < 0)
> +        return (AVRational){-1, 0};
>      if (num == 1.0 && (int)intnum == intnum)
>          return (AVRational){intnum, den};
>      else
> @@ -313,7 +315,8 @@ int64_t av_get_int(void *obj, const char *name, const 
> AVOption **o_out)
>      double num=1;
>      int den=1;
>  
> -    av_get_number(obj, name, o_out, &num, &den, &intnum);
> +    if (av_get_number(obj, name, o_out, &num, &den, &intnum) < 0)
> +        return -1;
>      return num*intnum/den;
>  }
>  


looks OK.

-Justin
_______________________________________________
libav-devel mailing list
[email protected]
https://lists.libav.org/mailman/listinfo/libav-devel

Reply via email to