comparison apedec.c @ 6442:28e45bf84973 libavcodec

Prevent segfault due to reading over the end of the input buffer.
author michael
date Tue, 04 Mar 2008 21:39:21 +0000
parents f07ad27251e5
children e3adb7e96812
comparison
equal deleted inserted replaced
6441:0cc3651e0bb2 6442:28e45bf84973
254 254
255 /** Perform normalization */ 255 /** Perform normalization */
256 static inline void range_dec_normalize(APEContext * ctx) 256 static inline void range_dec_normalize(APEContext * ctx)
257 { 257 {
258 while (ctx->rc.range <= BOTTOM_VALUE) { 258 while (ctx->rc.range <= BOTTOM_VALUE) {
259 ctx->rc.buffer = (ctx->rc.buffer << 8) | bytestream_get_byte(&ctx->ptr); 259 ctx->rc.buffer <<= 8;
260 if(ctx->ptr < ctx->data_end)
261 ctx->rc.buffer += *ctx->ptr;
262 ctx->ptr++;
260 ctx->rc.low = (ctx->rc.low << 8) | ((ctx->rc.buffer >> 1) & 0xFF); 263 ctx->rc.low = (ctx->rc.low << 8) | ((ctx->rc.buffer >> 1) & 0xFF);
261 ctx->rc.range <<= 8; 264 ctx->rc.range <<= 8;
262 } 265 }
263 } 266 }
264 267