Mercurial > libavcore.hg
comparison imgutils.c @ 26:ec642b5a1d0a libavcore
Add missing checks on invalid pixel format in
av_image_fill_linesizes/pointers.
author | stefano |
---|---|
date | Tue, 07 Sep 2010 23:41:18 +0000 |
parents | 63d8168fa16a |
children |
comparison
equal
deleted
inserted
replaced
25:63d8168fa16a | 26:ec642b5a1d0a |
---|---|
64 int max_step [4]; /* max pixel step for each plane */ | 64 int max_step [4]; /* max pixel step for each plane */ |
65 int max_step_comp[4]; /* the component for each plane which has the max pixel step */ | 65 int max_step_comp[4]; /* the component for each plane which has the max pixel step */ |
66 | 66 |
67 memset(linesizes, 0, 4*sizeof(linesizes[0])); | 67 memset(linesizes, 0, 4*sizeof(linesizes[0])); |
68 | 68 |
69 if (desc->flags & PIX_FMT_HWACCEL) | 69 if ((unsigned)pix_fmt >= PIX_FMT_NB || desc->flags & PIX_FMT_HWACCEL) |
70 return AVERROR(EINVAL); | 70 return AVERROR(EINVAL); |
71 | 71 |
72 if (desc->flags & PIX_FMT_BITSTREAM) { | 72 if (desc->flags & PIX_FMT_BITSTREAM) { |
73 linesizes[0] = (width * (desc->comp[0].step_minus1+1) + 7) >> 3; | 73 linesizes[0] = (width * (desc->comp[0].step_minus1+1) + 7) >> 3; |
74 return 0; | 74 return 0; |
91 const AVPixFmtDescriptor *desc = &av_pix_fmt_descriptors[pix_fmt]; | 91 const AVPixFmtDescriptor *desc = &av_pix_fmt_descriptors[pix_fmt]; |
92 memset(data , 0, sizeof(data[0])*4); | 92 memset(data , 0, sizeof(data[0])*4); |
93 memset(size , 0, sizeof(size)); | 93 memset(size , 0, sizeof(size)); |
94 memset(has_plane, 0, sizeof(has_plane)); | 94 memset(has_plane, 0, sizeof(has_plane)); |
95 | 95 |
96 if (desc->flags & PIX_FMT_HWACCEL) | 96 if ((unsigned)pix_fmt >= PIX_FMT_NB || desc->flags & PIX_FMT_HWACCEL) |
97 return AVERROR(EINVAL); | 97 return AVERROR(EINVAL); |
98 | 98 |
99 data[0] = ptr; | 99 data[0] = ptr; |
100 size[0] = linesizes[0] * height; | 100 size[0] = linesizes[0] * height; |
101 | 101 |