summaryrefslogtreecommitdiff
path: root/libavutil/imgutils.c
diff options
context:
space:
mode:
authorStefano Sabatini <stefano.sabatini-lala@poste.it>2011-05-13 16:27:35 +0200
committerStefano Sabatini <stefano.sabatini-lala@poste.it>2011-05-16 23:55:47 +0200
commit0d73227c712eca2247e06d7a3c2daeb6f6f2a128 (patch)
tree9282274fc78016c37b71e9997a44c6daf5c1eeef /libavutil/imgutils.c
parentd8c7a216024e1408a1f865227cdfd371ddbe1d59 (diff)
imgutils: make av_image_get_linesize() return AVERROR(EINVAL) for invalid pixel formats
Diffstat (limited to 'libavutil/imgutils.c')
-rw-r--r--libavutil/imgutils.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/libavutil/imgutils.c b/libavutil/imgutils.c
index 0df8de4255..3103efbe4a 100644
--- a/libavutil/imgutils.c
+++ b/libavutil/imgutils.c
@@ -50,6 +50,9 @@ int av_image_get_linesize(enum PixelFormat pix_fmt, int width, int plane)
int max_step_comp[4]; /* the component for each plane which has the max pixel step */
int s, linesize;
+ if ((unsigned)pix_fmt >= PIX_FMT_NB || desc->flags & PIX_FMT_HWACCEL)
+ return AVERROR(EINVAL);
+
av_image_fill_max_pixsteps(max_step, max_step_comp, desc);
s = (max_step_comp[plane] == 1 || max_step_comp[plane] == 2) ? desc->log2_chroma_w : 0;
linesize = max_step[plane] * (((width + (1 << s) - 1)) >> s);