comparison msrledec.c @ 9657:8a65ae8929fb libavcodec

Fix off-by-one error in MS RLE decoder which may result into writing past picture buffer.
author kostya
date Sat, 16 May 2009 06:39:08 +0000
parents 096ab16191a9
children c1ed557cd3b8
comparison
equal deleted inserted replaced
9656:03361db4df10 9657:8a65ae8929fb
132 static int msrle_decode_8_16_24_32(AVCodecContext *avctx, AVPicture *pic, int depth, 132 static int msrle_decode_8_16_24_32(AVCodecContext *avctx, AVPicture *pic, int depth,
133 const uint8_t *data, int srcsize) 133 const uint8_t *data, int srcsize)
134 { 134 {
135 uint8_t *output, *output_end; 135 uint8_t *output, *output_end;
136 const uint8_t* src = data; 136 const uint8_t* src = data;
137 int p1, p2, line=avctx->height, pos=0, i; 137 int p1, p2, line=avctx->height - 1, pos=0, i;
138 uint16_t av_uninit(pix16); 138 uint16_t av_uninit(pix16);
139 uint32_t av_uninit(pix32); 139 uint32_t av_uninit(pix32);
140 140
141 output = pic->data[0] + (avctx->height - 1) * pic->linesize[0]; 141 output = pic->data[0] + (avctx->height - 1) * pic->linesize[0];
142 output_end = pic->data[0] + (avctx->height) * pic->linesize[0]; 142 output_end = pic->data[0] + (avctx->height) * pic->linesize[0];