From 71b40994e0c58cb3cb97ac91a0f771dce182662f Mon Sep 17 00:00:00 2001 From: Nicolas Pennequin Date: Wed, 7 Nov 2007 00:39:08 +0000 Subject: Fix a flaw in prep_bufdata() that would lead to all kinds of problems with codecs that used bufread (MPC is one). git-svn-id: svn://svn.rockbox.org/rockbox/trunk@15501 a1c6a512-1295-4272-9138-f99709370657 --- apps/buffering.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/apps/buffering.c b/apps/buffering.c index ecca3872f8..8d44bbec27 100644 --- a/apps/buffering.c +++ b/apps/buffering.c @@ -987,10 +987,11 @@ static size_t prep_bufdata(const struct memory_handle *h, size_t size) if (h->type == TYPE_PACKET_AUDIO && size > BUFFERING_DEFAULT_FILECHUNK) { - /* If more than a filechunk is requested, log it and provide no more - * than the amount of data on buffer or one file chunk */ logf("data request > filechunk"); - size = MAX(avail,BUFFERING_DEFAULT_FILECHUNK); + /* If more than a filechunk is requested, provide no more than the + amount of data on buffer or one file chunk, but without increasing + "size", which would be bad. */ + size = MIN(size, MAX(avail, BUFFERING_DEFAULT_FILECHUNK)); } if (h->filerem > 0 && avail < size) -- cgit v1.2.3