summaryrefslogtreecommitdiff
path: root/apps/codecs/libasf
diff options
context:
space:
mode:
Diffstat (limited to 'apps/codecs/libasf')
-rw-r--r--apps/codecs/libasf/asf.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/apps/codecs/libasf/asf.c b/apps/codecs/libasf/asf.c
index ce41668..a7e4bca 100644
--- a/apps/codecs/libasf/asf.c
+++ b/apps/codecs/libasf/asf.c
@@ -191,7 +191,8 @@ int asf_read_packet(uint8_t** audiobuf, int* audiobufsize, int* packetlength,
buf = ci->request_buffer(&bufsize, length);
datap = buf;
- if (bufsize > length) {
+#define ASF_MAX_REQUEST (1L<<15) /* 32KB */
+ if (bufsize != length && length >= ASF_MAX_REQUEST) {
/* This should only happen with packets larger than 32KB (the
guard buffer size). All the streams I've seen have
relatively small packets less than about 8KB), but I don't