1
0
Fork 0
forked from len0rd/rockbox

Fixed the codec loader bug.

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@8403 a1c6a512-1295-4272-9138-f99709370657
This commit is contained in:
Miika Pekkarinen 2006-01-21 08:17:40 +00:00
parent 0e159f13cf
commit 33914a7dfc

View file

@ -242,9 +242,8 @@ int codec_load_ram(char* codecptr, int size, void* ptr2, int bufwrap,
size = MIN(size, CODEC_SIZE); size = MIN(size, CODEC_SIZE);
copy_n = MIN(size, bufwrap); copy_n = MIN(size, bufwrap);
memcpy(codecbuf, codecptr, copy_n); memcpy(codecbuf, codecptr, copy_n);
size -= copy_n; if (size - copy_n > 0) {
if (size > 0) { memcpy(&codecbuf[copy_n], ptr2, size - copy_n);
memcpy(&codecbuf[copy_n], ptr2, size);
} }
} }
hdr = (struct codec_header *)codecbuf; hdr = (struct codec_header *)codecbuf;
@ -253,7 +252,9 @@ int codec_load_ram(char* codecptr, int size, void* ptr2, int bufwrap,
|| hdr->magic != CODEC_MAGIC || hdr->magic != CODEC_MAGIC
|| hdr->target_id != TARGET_ID || hdr->target_id != TARGET_ID
|| hdr->load_addr != codecbuf || hdr->load_addr != codecbuf
|| hdr->end_addr > codecbuf + CODEC_SIZE) { || hdr->end_addr > codecbuf + CODEC_SIZE)
{
logf("codec header error");
return CODEC_ERROR; return CODEC_ERROR;
} }
#else /* SIMULATOR */ #else /* SIMULATOR */