Avoid infinte loop in read_golomb_ue()

This commit is contained in:
Andreas Öman 2012-10-11 09:49:11 +01:00
parent 33c91a4606
commit ce019c896d
2 changed files with 10 additions and 1 deletions

View file

@ -46,6 +46,13 @@ skip_bits(bitstream_t *bs, int num)
bs->offset += num;
}
int
bs_eof(const bitstream_t *bs)
{
return bs->offset >= bs->len;
}
unsigned int
read_bits(bitstream_t *bs, int num)
{
@ -76,7 +83,7 @@ read_golomb_ue(bitstream_t *bs)
{
int b, lzb = -1;
for(b = 0; !b; lzb++)
for(b = 0; !b && !bs_eof(bs); lzb++)
b = read_bits1(bs);
return (1 << lzb) - 1 + read_bits(bs, lzb);

View file

@ -44,4 +44,6 @@ unsigned int remaining_bits(bitstream_t *gb);
void put_bits(bitstream_t *bs, int val, int num);
int bs_eof(const bitstream_t *bs);
#endif /* BITSTREAM_H_ */