diff options
Diffstat (limited to 'apps/codecs.c')
-rw-r--r-- | apps/codecs.c | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/apps/codecs.c b/apps/codecs.c index d12b43642f..d8ad7146df 100644 --- a/apps/codecs.c +++ b/apps/codecs.c | |||
@@ -243,7 +243,8 @@ int codec_load_ram(char* codecptr, int size, void* ptr2, int bufwrap, | |||
243 | } | 243 | } |
244 | hdr = (struct codec_header *)codecbuf; | 244 | hdr = (struct codec_header *)codecbuf; |
245 | 245 | ||
246 | if (hdr->magic != CODEC_MAGIC | 246 | if (size <= (signed)sizeof(struct codec_header) |
247 | || hdr->magic != CODEC_MAGIC | ||
247 | || hdr->target_id != TARGET_ID | 248 | || hdr->target_id != TARGET_ID |
248 | || hdr->load_addr != codecbuf | 249 | || hdr->load_addr != codecbuf |
249 | || hdr->end_addr > codecbuf + CODEC_SIZE) { | 250 | || hdr->end_addr > codecbuf + CODEC_SIZE) { |
@@ -258,8 +259,7 @@ int codec_load_ram(char* codecptr, int size, void* ptr2, int bufwrap, | |||
258 | 259 | ||
259 | if (hdr == NULL | 260 | if (hdr == NULL |
260 | || hdr->magic != CODEC_MAGIC | 261 | || hdr->magic != CODEC_MAGIC |
261 | || hdr->target_id != TARGET_ID | 262 | || hdr->target_id != TARGET_ID) { |
262 | || hdr->entry_point == NULL) { | ||
263 | sim_codec_close(pd); | 263 | sim_codec_close(pd); |
264 | return CODEC_ERROR; | 264 | return CODEC_ERROR; |
265 | } | 265 | } |