summaryrefslogtreecommitdiffstats
path: root/demux/demux_mkv.c
diff options
context:
space:
mode:
Diffstat (limited to 'demux/demux_mkv.c')
-rw-r--r--demux/demux_mkv.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/demux/demux_mkv.c b/demux/demux_mkv.c
index 25591cd60a..470a9b9847 100644
--- a/demux/demux_mkv.c
+++ b/demux/demux_mkv.c
@@ -271,7 +271,8 @@ static bstr demux_mkv_decode(struct mp_log *log, mkv_track_t *track,
} else if (enc->comp_algo == 2) {
/* lzo encoded track */
int out_avail;
- if (size > INT_MAX / 3 + AV_LZO_OUTPUT_PADDING)
+ int maxlen = INT_MAX - AV_LZO_OUTPUT_PADDING;
+ if (size >= maxlen / 3)
goto error;
int dstlen = size * 3;
@@ -291,7 +292,7 @@ static bstr demux_mkv_decode(struct mp_log *log, mkv_track_t *track,
goto error;
}
mp_dbg(log, "lzo decompression buffer too small.\n");
- if (dstlen > INT_MAX / 2 + AV_LZO_OUTPUT_PADDING) {
+ if (dstlen >= maxlen / 2) {
talloc_free(dest);
dest = NULL;
goto error;