From: Andre Noll Date: Fri, 1 Nov 2013 18:11:23 +0000 (+0100) Subject: wma afh: Read the description field as the comment tag. X-Git-Tag: v0.5.3~28 X-Git-Url: http://git.tuebingen.mpg.de/?a=commitdiff_plain;h=45ad939cb6b7a99750757473cc0c8324c5b3e701;p=paraslash.git wma afh: Read the description field as the comment tag. The wma audio format handler parses the entries of the ASF content description object and interprets its fifth field as the comment tag. This is wrong, since this field actually corresponds to the rating information, which is usually unused. The correct field to examine is #4. --- diff --git a/wma_afh.c b/wma_afh.c index 7ac1ba64..c429020c 100644 --- a/wma_afh.c +++ b/wma_afh.c @@ -132,7 +132,7 @@ static const char album_tag_header[] = { /* WM/AlbumTitle */ static void read_asf_tags(const char *buf, int buf_size, struct taginfo *ti) { const char *p, *end = buf + buf_size, *q; - uint16_t len1, len2, len3, len4, len5; + uint16_t len1, len2, len3, len4; p = search_pattern(comment_header, sizeof(comment_header), buf, buf_size); @@ -149,7 +149,7 @@ static void read_asf_tags(const char *buf, int buf_size, struct taginfo *ti) p += 2; len4 = read_u16(p); p += 2; - len5 = read_u16(p); + /* ignore length of the rating information */ p += 2; if (p + len1 >= end) goto next; @@ -158,10 +158,10 @@ static void read_asf_tags(const char *buf, int buf_size, struct taginfo *ti) if (p + len2 >= end) goto next; ti->artist = get_str16(p, len2); - p += len2 + len3 + len4; - if (p + len5 >= end) + p += len2 + len3; + if (p + len4 >= end) goto next; - ti->comment = get_str16(p, len5); + ti->comment = get_str16(p, len4); next: p = search_pattern(extended_content_header, sizeof(extended_content_header), buf, buf_size);