Bugzilla – Bug 4686
SlimServer mangles Vorbis tags containing the equals (=) character
Last modified: 2008-12-18 11:12:28 UTC
It's not very common, but some tags may contain the equals sign. For example, Dr. John has a song called "Me - You = Loneliness" SlimServer scans this track and puts the song name "Me - You" into the database. Everything past the equals sign, including the equals sign, is truncated. If it's relevant, I'm using SlimServer 6.5.1 on Linux and the music is in Ogg Vorbis format.
The problem is that we use Perl's split function expecting a returned list of only two strings. From PurePerl.pm::_loadComments: my ($key, $value) = split(/=/, substr($buffer, 0, $comment_length, '')); This should actually be something like... my @commentlist= split(/=/, substr($buffer, 0, $comment_length, '')); my $key=$commentlist[0]; @commentlist=splice(@commentlist,1); my $value=join('=',@commentlist); I'm not sure this is the best way to do it (or even if it's error-free), but I'd made the code change on my machine and it seems to work! The split/splice/join may be more expensive than a simple index/substr solution, but I'll leave it to you to decide if it's good enough. The file I modified was under /lib/Ogg/Vorbis/Header but this problem could also exist in other file formats.
A look through the modules for other formats indicates this bug is Vorbis-only. Modified title accordingly. The existing patch seems to fix the problem without any side-effects as far as I can tell.
Bug still exists in 6.5.3, patch still applies and seems to fix the issue.
chris, what are your thoughts here? 6.5 or 7?
Well, it sounds like we have a patch already. Why not put it in 6.5?
committed slightly altered patch to trunk at change 12404 and to 6.5.4 at change 12405. available in nightly builds from July 20 onward, please reopen if there are any issues.