diff options
author | Reimar Döffinger <Reimar.Doeffinger@gmx.de> | 2011-11-05 21:45:31 +0100 |
---|---|---|
committer | Carl Eugen Hoyos <cehoyos@ag.or.at> | 2011-11-08 20:37:05 +0100 |
commit | 80a173a33b8abe961397834843881d90a1ddb2a7 (patch) | |
tree | d2f5f61fea210e7fbd7c14bce705e0229e7ea692 | |
parent | d484a07f1cb2fd416dd4e733ee793a1603c507bf (diff) | |
download | ffmpeg-80a173a33b8abe961397834843881d90a1ddb2a7.tar.gz |
av_lzo1x_decode: properly handle negative buffer length.
Treating them like 0 is safest, current code would invoke
undefined pointer arithmetic behaviour in this case.
Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
(cherry picked from commit b9242fd12f4be4a79e31fd0aa125ab8a48226896)
(cherry picked from commit 0411b1928965050a940155984a16ad82fe462fc1)
-rw-r--r-- | libavutil/lzo.c | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/libavutil/lzo.c b/libavutil/lzo.c index 40a41a424d..8407d7d376 100644 --- a/libavutil/lzo.c +++ b/libavutil/lzo.c @@ -175,11 +175,11 @@ int av_lzo1x_decode(void *out, int *outlen, const void *in, int *inlen) { int state= 0; int x; LZOContext c; - if (!*outlen || !*inlen) { + if (*outlen <= 0 || *inlen <= 0) { int res = 0; - if (!*outlen) + if (*outlen <= 0) res |= AV_LZO_OUTPUT_FULL; - if (!*inlen) + if (*inlen <= 0) res |= AV_LZO_INPUT_DEPLETED; return res; } |