Mercurial > libavcodec.hg
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 |