On 2009/03/17 Max Kellermann<m...@duempel.org> wrote:

> There doesn't seem to be an "official" standard.  I'd say: search for
> TITLE[1] first (the most explicit form), then TITLE1, and finally fall
> back to TITLE.  This makes sure MPD supports every possible standard,
> without breaking.

I've also added some additional checks to make sure entry is long
enough.

cu

   Mario

--
In a world without walls and fences, who needs Windows and Gates?
diff --git a/src/decoder/_flac_common.c b/src/decoder/_flac_common.c
index 20ac018..713dfe9 100644
--- a/src/decoder/_flac_common.c
+++ b/src/decoder/_flac_common.c
@@ -103,14 +103,21 @@ flac_comment_value(const FLAC__StreamMetadata_VorbisComment_Entry *entry,
 		   const char *name, const char *char_tnum, size_t *length_r)
 {
 	size_t name_length = strlen(name);
-	size_t char_tnum_length = strlen(char_tnum);
+	size_t char_tnum_length = 0;
 	const char *comment = (const char*)entry->entry;
 
 	if (entry->length > name_length &&
 	    g_ascii_strncasecmp(comment, name, name_length) == 0) {
 	        if (char_tnum != NULL) {
 	            char_tnum_length = strlen(char_tnum);
-		    if (g_ascii_strncasecmp(comment + name_length,
+		    if (entry->length > name_length + char_tnum_length + 2 &&
+		        comment[name_length] == '[' &&
+		        g_ascii_strncasecmp(comment + name_length + 1,
+			char_tnum, char_tnum_length) == 0 &&
+			comment[name_length + char_tnum_length + 1] == ']')
+			    name_length = name_length + char_tnum_length + 2;
+		    else if (entry->length > name_length + char_tnum_length &&
+		        g_ascii_strncasecmp(comment + name_length,
 		        char_tnum, char_tnum_length) == 0)
 			    name_length = name_length + char_tnum_length;
 	        }
------------------------------------------------------------------------------
Apps built with the Adobe(R) Flex(R) framework and Flex Builder(TM) are
powering Web 2.0 with engaging, cross-platform capabilities. Quickly and
easily build your RIAs with Flex Builder, the Eclipse(TM)based development
software that enables intelligent coding and step-through debugging.
Download the free 60 day trial. http://p.sf.net/sfu/www-adobe-com
_______________________________________________
Musicpd-dev-team mailing list
Musicpd-dev-team@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/musicpd-dev-team

Reply via email to