* commit 'ca6c3f2c53be70aa3c38e8f1292809db89ea1ba6': lzo: fix overflow checking in copy_backptr() flacdec: simplify bounds checking in flac_probe() atrac3: avoid oversized shifting in decode_bytes() Conflicts: libavformat/flacdec.c Merged-by: Michael Niedermayer <michaelni@gmx.at>tags/n2.0
| @@ -164,7 +164,10 @@ static int decode_bytes(const uint8_t *input, uint8_t *out, int bytes) | |||||
| off = (intptr_t)input & 3; | off = (intptr_t)input & 3; | ||||
| buf = (const uint32_t *)(input - off); | buf = (const uint32_t *)(input - off); | ||||
| c = av_be2ne32((0x537F6103 >> (off * 8)) | (0x537F6103 << (32 - (off * 8)))); | |||||
| if (off) | |||||
| c = av_be2ne32((0x537F6103U >> (off * 8)) | (0x537F6103U << (32 - (off * 8)))); | |||||
| else | |||||
| c = av_be2ne32(0x537F6103U); | |||||
| bytes += 3 + off; | bytes += 3 + off; | ||||
| for (i = 0; i < bytes / 4; i++) | for (i = 0; i < bytes / 4; i++) | ||||
| output[i] = c ^ buf[i]; | output[i] = c ^ buf[i]; | ||||
| @@ -278,11 +278,9 @@ fail: | |||||
| static int flac_probe(AVProbeData *p) | static int flac_probe(AVProbeData *p) | ||||
| { | { | ||||
| const uint8_t *bufptr = p->buf; | |||||
| const uint8_t *end = p->buf + p->buf_size; | |||||
| if(bufptr > end-4 || memcmp(bufptr, "fLaC", 4)) return 0; | |||||
| else return AVPROBE_SCORE_MAX/2; | |||||
| if (p->buf_size < 4 || memcmp(p->buf, "fLaC", 4)) | |||||
| return 0; | |||||
| return AVPROBE_SCORE_MAX/2; | |||||
| } | } | ||||
| AVInputFormat ff_flac_demuxer = { | AVInputFormat ff_flac_demuxer = { | ||||
| @@ -110,9 +110,8 @@ static inline void copy(LZOContext *c, int cnt) | |||||
| */ | */ | ||||
| static inline void copy_backptr(LZOContext *c, int back, int cnt) | static inline void copy_backptr(LZOContext *c, int back, int cnt) | ||||
| { | { | ||||
| register const uint8_t *src = &c->out[-back]; | |||||
| register uint8_t *dst = c->out; | register uint8_t *dst = c->out; | ||||
| if (src < c->out_start || src > dst) { | |||||
| if (dst - c->out_start < back) { | |||||
| c->error |= AV_LZO_INVALID_BACKPTR; | c->error |= AV_LZO_INVALID_BACKPTR; | ||||
| return; | return; | ||||
| } | } | ||||