From ae32e1ef06b57e71e7130ce76082cb0877aaaca5 Mon Sep 17 00:00:00 2001 From: Andree Buschmann Date: Thu, 17 Feb 2011 18:35:24 +0000 Subject: Ensure proper initialization of some variables and arrays in metadata parsing. Fixes FS#11948. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@29323 a1c6a512-1295-4272-9138-f99709370657 --- apps/metadata/mp4.c | 4 ++-- apps/mp3data.c | 11 ++++++----- 2 files changed, 8 insertions(+), 7 deletions(-) diff --git a/apps/metadata/mp4.c b/apps/metadata/mp4.c index 2c5faa5a59..706e621234 100644 --- a/apps/metadata/mp4.c +++ b/apps/metadata/mp4.c @@ -544,8 +544,8 @@ static bool read_mp4_tags(int fd, struct mp3entry* id3, static bool read_mp4_container(int fd, struct mp3entry* id3, uint32_t size_left) { - uint32_t size; - uint32_t type; + uint32_t size = 0; + uint32_t type = 0; uint32_t handler = 0; bool rc = true; bool done = false; diff --git a/apps/mp3data.c b/apps/mp3data.c index a0068edeb9..44208604bc 100644 --- a/apps/mp3data.c +++ b/apps/mp3data.c @@ -363,7 +363,8 @@ int get_mp3file_info(int fd, struct mp3info *info) if(header == 0) return -1; - memset(info, 0, sizeof(struct mp3info)); + memset(info, 0, sizeof(struct mp3info)); + memset(frame, 0, sizeof(frame)); #if CONFIG_CODEC==SWCODEC /* These two are needed for proper LAME gapless MP3 playback */ info->enc_delay = -1; @@ -460,12 +461,12 @@ int get_mp3file_info(int fd, struct mp3info *info) } #if CONFIG_CODEC==SWCODEC i += 21; - info->enc_delay = (vbrheader[i] << 4) | (vbrheader[i + 1] >> 4); - info->enc_padding = ((vbrheader[i + 1] & 0x0f) << 8) | vbrheader[i + 2]; + info->enc_delay = ((int)vbrheader[i ] << 4) | (vbrheader[i+1] >> 4); + info->enc_padding = ((int)vbrheader[i+1] << 8) | vbrheader[i+2]; /* TODO: This sanity checking is rather silly, seeing as how the LAME header contains a CRC field that can be used to verify integrity. */ - if (!(info->enc_delay >= 0 && info->enc_delay <= 2880 && - info->enc_padding >= 0 && info->enc_padding <= 2*1152)) + if (!(info->enc_delay >= 0 && info->enc_delay <= 2880 && + info->enc_padding >= 0 && info->enc_padding <= 2*1152)) { /* Invalid data */ info->enc_delay = -1; -- cgit v1.2.3