On Wed, Dec 17, 2014 at 4:02 PM, Vittorio Giovara
<[email protected]> wrote:
> CC: [email protected]
> Bug-Id: CID 1257779
> ---
>  libswscale/yuv2rgb.c | 18 +++++++++++-------
>  1 file changed, 11 insertions(+), 7 deletions(-)
>
> diff --git a/libswscale/yuv2rgb.c b/libswscale/yuv2rgb.c
> index 480fbe3..a4f7a11 100644
> --- a/libswscale/yuv2rgb.c
> +++ b/libswscale/yuv2rgb.c
> @@ -736,9 +736,13 @@ av_cold int ff_yuv2rgb_c_init_tables(SwsContext *c, 
> const int inv_table[4],
>
>      av_free(c->yuvTable);
>
> +#define ALLOC_YUV_TABLE(x)          \
> +        c->yuvTable = av_malloc(x); \
> +        if (!c->yuvTable)           \
> +            return AVERROR(ENOMEM);
>      switch (bpp) {
>      case 1:
> -        c->yuvTable = av_malloc(1024);
> +        ALLOC_YUV_TABLE(1024);
>          y_table     = c->yuvTable;
>          yb = -(384 << 16) - oy;
>          for (i = 0; i < 1024 - 110; i++) {
> @@ -753,7 +757,7 @@ av_cold int ff_yuv2rgb_c_init_tables(SwsContext *c, const 
> int inv_table[4],
>          rbase       = isRgb ? 3 : 0;
>          gbase       = 1;
>          bbase       = isRgb ? 0 : 3;
> -        c->yuvTable = av_malloc(1024 * 3);
> +        ALLOC_YUV_TABLE(1024 * 3);
>          y_table     = c->yuvTable;
>          yb = -(384 << 16) - oy;
>          for (i = 0; i < 1024 - 110; i++) {
> @@ -772,7 +776,7 @@ av_cold int ff_yuv2rgb_c_init_tables(SwsContext *c, const 
> int inv_table[4],
>          rbase       = isRgb ? 5 : 0;
>          gbase       = isRgb ? 2 : 3;
>          bbase       = isRgb ? 0 : 6;
> -        c->yuvTable = av_malloc(1024 * 3);
> +        ALLOC_YUV_TABLE(1024 * 3);
>          y_table     = c->yuvTable;
>          yb = -(384 << 16) - oy;
>          for (i = 0; i < 1024 - 38; i++) {
> @@ -791,7 +795,7 @@ av_cold int ff_yuv2rgb_c_init_tables(SwsContext *c, const 
> int inv_table[4],
>          rbase       = isRgb ? 8 : 0;
>          gbase       = 4;
>          bbase       = isRgb ? 0 : 8;
> -        c->yuvTable = av_malloc(1024 * 3 * 2);
> +        ALLOC_YUV_TABLE(1024 * 3 * 2);
>          y_table16   = c->yuvTable;
>          yb = -(384 << 16) - oy;
>          for (i = 0; i < 1024; i++) {
> @@ -814,7 +818,7 @@ av_cold int ff_yuv2rgb_c_init_tables(SwsContext *c, const 
> int inv_table[4],
>          rbase       = isRgb ? bpp - 5 : 0;
>          gbase       = 5;
>          bbase       = isRgb ? 0 : (bpp - 5);
> -        c->yuvTable = av_malloc(1024 * 3 * 2);
> +        ALLOC_YUV_TABLE(1024 * 3 * 2);
>          y_table16   = c->yuvTable;
>          yb = -(384 << 16) - oy;
>          for (i = 0; i < 1024; i++) {
> @@ -834,7 +838,7 @@ av_cold int ff_yuv2rgb_c_init_tables(SwsContext *c, const 
> int inv_table[4],
>          break;
>      case 24:
>      case 48:
> -        c->yuvTable = av_malloc(1024);
> +        ALLOC_YUV_TABLE(1024);
>          y_table     = c->yuvTable;
>          yb = -(384 << 16) - oy;
>          for (i = 0; i < 1024; i++) {
> @@ -855,7 +859,7 @@ av_cold int ff_yuv2rgb_c_init_tables(SwsContext *c, const 
> int inv_table[4],
>          needAlpha = CONFIG_SWSCALE_ALPHA && isALPHA(c->srcFormat);
>          if (!needAlpha)
>              abase = (base + 24) & 31;
> -        c->yuvTable = av_malloc(1024 * 3 * 4);
> +        ALLOC_YUV_TABLE(1024 * 3 * 4);
>          y_table32   = c->yuvTable;
>          yb = -(384 << 16) - oy;
>          for (i = 0; i < 1024; i++) {
> --
> 1.9.3 (Apple Git-50)
>
> _______________________________________________
> libav-devel mailing list
> [email protected]
> https://lists.libav.org/mailman/listinfo/libav-devel

Seems to be OK.
_______________________________________________
libav-devel mailing list
[email protected]
https://lists.libav.org/mailman/listinfo/libav-devel

Reply via email to