[Slim-Checkins] r10227 - /trunk/server/lib/Audio/WMA.pm
andy at svn.slimdevices.com
andy at svn.slimdevices.com
Thu Oct 5 19:16:13 PDT 2006
Author: andy
Date: Thu Oct 5 19:16:12 2006
New Revision: 10227
URL: http://svn.slimdevices.com?rev=10227&view=rev
Log:
Bug 4302, this ASF stream had bogus streamNameCount and payloadExtensionCount values, work around this by not looping if we run out of data
Modified:
trunk/server/lib/Audio/WMA.pm
Modified: trunk/server/lib/Audio/WMA.pm
URL: http://svn.slimdevices.com/trunk/server/lib/Audio/WMA.pm?rev=10227&r1=10226&r2=10227&view=diff
==============================================================================
--- trunk/server/lib/Audio/WMA.pm (original)
+++ trunk/server/lib/Audio/WMA.pm Thu Oct 5 19:16:12 2006
@@ -642,8 +642,8 @@
);
for (my $s = 0; $s < $ext{'streamNameCount'}; $s++) {
-
- my $language = unpack('v', $self->_readAndIncrementInlineOffset($WORD));
+
+ my $language = unpack('v', $self->_readAndIncrementInlineOffset($WORD)) || last;
my $length = unpack('v', $self->_readAndIncrementInlineOffset($WORD));
$self->_readAndIncrementInlineOffset($length);
@@ -651,8 +651,8 @@
}
for (my $p = 0; $p < $ext{'payloadExtensionCount'}; $p++) {
-
- $self->_readAndIncrementInlineOffset(18);
+
+ $self->_readAndIncrementInlineOffset(18) || last;
my $length = unpack('V', $self->_readAndIncrementInlineOffset($DWORD));
$self->_readAndIncrementInlineOffset($length);
@@ -1118,6 +1118,8 @@
my @byteString = split //, shift;
my $guidString;
+
+ return unless @byteString;
# this reverses _guidToByteString.
$guidString = sprintf("%02X", ord($byteString[3]));
More information about the checkins
mailing list