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; |
