aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMichael Niedermayer <michaelni@gmx.at>2013-03-16 14:10:09 +0100
committerMichael Niedermayer <michaelni@gmx.at>2013-03-16 14:10:09 +0100
commitaef816f957eec100da42bcbf65e3bfe86df679fa (patch)
tree15bdbdde9fa060b95e64be2c628ed17efbb15530
parente4e4add0e3ba7d8ca8ed9135288da910270d2ea3 (diff)
parentca6c3f2c53be70aa3c38e8f1292809db89ea1ba6 (diff)
downloadffmpeg-aef816f957eec100da42bcbf65e3bfe86df679fa.tar.gz
Merge commit 'ca6c3f2c53be70aa3c38e8f1292809db89ea1ba6'
* 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>
-rw-r--r--libavcodec/atrac3.c5
-rw-r--r--libavformat/flacdec.c8
-rw-r--r--libavutil/lzo.c3
3 files changed, 8 insertions, 8 deletions
diff --git a/libavcodec/atrac3.c b/libavcodec/atrac3.c
index ac240d7007..a9e98f807b 100644
--- a/libavcodec/atrac3.c
+++ b/libavcodec/atrac3.c
@@ -164,7 +164,10 @@ static int decode_bytes(const uint8_t *input, uint8_t *out, int bytes)
off = (intptr_t)input & 3;
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;
for (i = 0; i < bytes / 4; i++)
output[i] = c ^ buf[i];
diff --git a/libavformat/flacdec.c b/libavformat/flacdec.c
index 93f8f9df49..d5aacfd15f 100644
--- a/libavformat/flacdec.c
+++ b/libavformat/flacdec.c
@@ -278,11 +278,9 @@ fail:
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 = {
diff --git a/libavutil/lzo.c b/libavutil/lzo.c
index c723257212..221a66b9ab 100644
--- a/libavutil/lzo.c
+++ b/libavutil/lzo.c
@@ -110,9 +110,8 @@ static inline void copy(LZOContext *c, 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;
- if (src < c->out_start || src > dst) {
+ if (dst - c->out_start < back) {
c->error |= AV_LZO_INVALID_BACKPTR;
return;
}