From ed958b306ce5c266ff2dd1db9efe2abf26b74c50 Mon Sep 17 00:00:00 2001 From: kramm Date: Wed, 12 Mar 2008 19:12:45 +0000 Subject: [PATCH] fixed bug in reader_memread() --- lib/bitio.c | 13 +++++-------- 1 file changed, 5 insertions(+), 8 deletions(-) diff --git a/lib/bitio.c b/lib/bitio.c index 8d17006..10b7a47 100644 --- a/lib/bitio.c +++ b/lib/bitio.c @@ -89,15 +89,12 @@ static int reader_memread(reader_t*reader, void* data, int len) { struct memread_t*mr = (struct memread_t*)reader->internal; - if(mr->length - reader->pos > len) { - memcpy(data, &mr->data[reader->pos], len); - reader->pos += len; - return len; - } else { - memcpy(data, &mr->data[reader->pos], mr->length - reader->pos); - reader->pos += mr->length; - return mr->length - reader->pos; + if(mr->length - reader->pos < len) { + len = mr->length - reader->pos; } + memcpy(data, &mr->data[reader->pos], len); + reader->pos += len; + return len; } static void reader_memread_dealloc(reader_t*reader) { -- 1.7.10.4