aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorReimar Döffinger <Reimar.Doeffinger@gmx.de>2011-11-05 21:45:31 +0100
committerCarl Eugen Hoyos <cehoyos@ag.or.at>2011-11-08 20:37:05 +0100
commit80a173a33b8abe961397834843881d90a1ddb2a7 (patch)
treed2f5f61fea210e7fbd7c14bce705e0229e7ea692
parentd484a07f1cb2fd416dd4e733ee793a1603c507bf (diff)
downloadffmpeg-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.c6
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;
}