Mercurial > libavcodec.hg
comparison utils.c @ 10549:981e7720fc03 libavcodec
Allocate pictures with enough padding for jpeg.
Ensure that jpeg does not use mbs that could require larger padding.
This might have been exploitable.
author | michael |
---|---|
date | Fri, 20 Nov 2009 22:14:37 +0000 |
parents | 046dcf7aa19c |
children | eb415f52f9f9 |
comparison
equal
deleted
inserted
replaced
10548:e68792a12c31 | 10549:981e7720fc03 |
---|---|
124 switch(s->pix_fmt){ | 124 switch(s->pix_fmt){ |
125 case PIX_FMT_YUV420P: | 125 case PIX_FMT_YUV420P: |
126 case PIX_FMT_YUYV422: | 126 case PIX_FMT_YUYV422: |
127 case PIX_FMT_UYVY422: | 127 case PIX_FMT_UYVY422: |
128 case PIX_FMT_YUV422P: | 128 case PIX_FMT_YUV422P: |
129 case PIX_FMT_YUV440P: | |
129 case PIX_FMT_YUV444P: | 130 case PIX_FMT_YUV444P: |
130 case PIX_FMT_GRAY8: | 131 case PIX_FMT_GRAY8: |
131 case PIX_FMT_GRAY16BE: | 132 case PIX_FMT_GRAY16BE: |
132 case PIX_FMT_GRAY16LE: | 133 case PIX_FMT_GRAY16LE: |
133 case PIX_FMT_YUVJ420P: | 134 case PIX_FMT_YUVJ420P: |
134 case PIX_FMT_YUVJ422P: | 135 case PIX_FMT_YUVJ422P: |
136 case PIX_FMT_YUVJ440P: | |
135 case PIX_FMT_YUVJ444P: | 137 case PIX_FMT_YUVJ444P: |
136 case PIX_FMT_YUVA420P: | 138 case PIX_FMT_YUVA420P: |
137 w_align= 16; //FIXME check for non mpeg style codecs and use less alignment | 139 w_align= 16; //FIXME check for non mpeg style codecs and use less alignment |
138 h_align= 16; | 140 h_align= 16; |
139 if(s->codec_id == CODEC_ID_MPEG2VIDEO) | 141 if(s->codec_id == CODEC_ID_MPEG2VIDEO || s->codec_id == CODEC_ID_MJPEG || s->codec_id == CODEC_ID_AMV || s->codec_id == CODEC_ID_THP) |
140 h_align= 32; // interlaced is rounded up to 2 MBs | 142 h_align= 32; // interlaced is rounded up to 2 MBs |
141 break; | 143 break; |
142 case PIX_FMT_YUV411P: | 144 case PIX_FMT_YUV411P: |
143 case PIX_FMT_UYYVYY411: | 145 case PIX_FMT_UYYVYY411: |
144 w_align=32; | 146 w_align=32; |