summaryrefslogtreecommitdiff
path: root/apps
diff options
context:
space:
mode:
Diffstat (limited to 'apps')
-rw-r--r--apps/codecs.c11
1 files changed, 6 insertions, 5 deletions
diff --git a/apps/codecs.c b/apps/codecs.c
index 88b2ea4e07..6720de909c 100644
--- a/apps/codecs.c
+++ b/apps/codecs.c
@@ -238,13 +238,12 @@ int codec_load_ram(char* codecptr, int size, void* ptr2, int bufwrap,
238 if ((char *)&codecbuf[0] != codecptr) { 238 if ((char *)&codecbuf[0] != codecptr) {
239 /* zero out codec buffer to ensure a properly zeroed bss area */ 239 /* zero out codec buffer to ensure a properly zeroed bss area */
240 memset(codecbuf, 0, CODEC_SIZE); 240 memset(codecbuf, 0, CODEC_SIZE);
241 241
242 size = MIN(size, CODEC_SIZE); 242 size = MIN(size, CODEC_SIZE);
243 copy_n = MIN(size, bufwrap); 243 copy_n = MIN(size, bufwrap);
244 memcpy(codecbuf, codecptr, copy_n); 244 memcpy(codecbuf, codecptr, copy_n);
245 size -= copy_n; 245 if (size - copy_n > 0) {
246 if (size > 0) { 246 memcpy(&codecbuf[copy_n], ptr2, size - copy_n);
247 memcpy(&codecbuf[copy_n], ptr2, size);
248 } 247 }
249 } 248 }
250 hdr = (struct codec_header *)codecbuf; 249 hdr = (struct codec_header *)codecbuf;
@@ -253,7 +252,9 @@ int codec_load_ram(char* codecptr, int size, void* ptr2, int bufwrap,
253 || hdr->magic != CODEC_MAGIC 252 || hdr->magic != CODEC_MAGIC
254 || hdr->target_id != TARGET_ID 253 || hdr->target_id != TARGET_ID
255 || hdr->load_addr != codecbuf 254 || hdr->load_addr != codecbuf
256 || hdr->end_addr > codecbuf + CODEC_SIZE) { 255 || hdr->end_addr > codecbuf + CODEC_SIZE)
256 {
257 logf("codec header error");
257 return CODEC_ERROR; 258 return CODEC_ERROR;
258 } 259 }
259#else /* SIMULATOR */ 260#else /* SIMULATOR */