diff options
author | William Wilgus <wilgus.william@gmail.com> | 2021-08-01 22:26:05 -0400 |
---|---|---|
committer | William Wilgus <wilgus.william@gmail.com> | 2021-08-01 22:29:14 -0400 |
commit | 247731fe8c1bdf8c18605ba0844072ed0c5568da (patch) | |
tree | 88b31e590105337c879bcc45aff0a91cde4c27e1 | |
parent | 2346a7aa6dbba06118d09220a9ec5893cfb5ff0c (diff) | |
download | rockbox-247731fe8c1bdf8c18605ba0844072ed0c5568da.tar.gz rockbox-247731fe8c1bdf8c18605ba0844072ed0c5568da.zip |
id3tags.c check for buffer overrun
Change-Id: I74fde8e234fe85abfabefddcea7f10038167c715
-rw-r--r-- | lib/rbcodec/metadata/id3tags.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/lib/rbcodec/metadata/id3tags.c b/lib/rbcodec/metadata/id3tags.c index c3a0473e7e..458e24cf61 100644 --- a/lib/rbcodec/metadata/id3tags.c +++ b/lib/rbcodec/metadata/id3tags.c | |||
@@ -970,6 +970,9 @@ void setid3v2title(int fd, struct mp3entry *entry) | |||
970 | if((tr->tag_length == 4 && !memcmp( header, "COMM", 4)) || | 970 | if((tr->tag_length == 4 && !memcmp( header, "COMM", 4)) || |
971 | (tr->tag_length == 3 && !memcmp( header, "COM", 3))) { | 971 | (tr->tag_length == 3 && !memcmp( header, "COM", 3))) { |
972 | int offset; | 972 | int offset; |
973 | if (buffersize - bufferpos <= 4) | ||
974 | return; /* Error ?? */ | ||
975 | |||
973 | if(bytesread >= 8 && !strncmp(tag+4, "iTun", 4)) { | 976 | if(bytesread >= 8 && !strncmp(tag+4, "iTun", 4)) { |
974 | /* check for iTunes gapless information */ | 977 | /* check for iTunes gapless information */ |
975 | if(bytesread >= 12 && !strncmp(tag+4, "iTunSMPB", 8)) | 978 | if(bytesread >= 12 && !strncmp(tag+4, "iTunSMPB", 8)) |