From c61e462ae3b0c0a82a1b3d1aaf4a146c8936c58d Mon Sep 17 00:00:00 2001 From: Daniel Stenberg Date: Thu, 11 Oct 2007 22:53:08 +0000 Subject: read_mp4_tag_string() may return a NULL in the pointer so no code should rely on the pointer being valid unless the return code is checked. This lead to the year_string being accessed with atoi() even when being NULL => crash. This fixes FS#7937. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@15080 a1c6a512-1295-4272-9138-f99709370657 --- apps/metadata/mp4.c | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/apps/metadata/mp4.c b/apps/metadata/mp4.c index 6f9383fd5d..4a1fba11c2 100644 --- a/apps/metadata/mp4.c +++ b/apps/metadata/mp4.c @@ -402,17 +402,21 @@ static bool read_mp4_tags(int fd, struct mp3entry* id3, case MP4_cday: read_mp4_tag_string(fd, size, &buffer, &buffer_left, - &id3->year_string); + &id3->year_string); /* Try to parse it as a year, for the benefit of the database. */ - id3->year = atoi(id3->year_string); - - if (id3->year < 1900) + if(id3->year_string) { - id3->year = 0; + id3->year = atoi(id3->year_string); + if (id3->year < 1900) + { + id3->year = 0; + } } - + else + id3->year = 0; + break; case MP4_gnre: -- cgit v1.2.3