Package: python-eyed3
Version: 0.6.3-1
Severity: normal
Tags: patch

If an ID3 tag contains a date frame consisting of a \0 byte and nothing
else, eyed3 makes an attempt to strip the \0 byte out.  There are in fact
two pieces of code which try to do that: one using the unicode.strip method,
and one with an explicit loop.  The latter coincidentally converts the
string from unicode to str.  In a subsequent iteration of the loop, that
causes an assertion that the string is of type unicode to fail.

Patch below.

*** eyed3.diff
--- eyeD3/frames.py.orig        2004-11-23 01:19:59.000000000 +0000
+++ eyeD3/frames.py     2005-03-17 13:17:16.000000000 +0000
@@ -633,14 +633,9 @@
                self.date = d;
             else:
                assert(isinstance(d, unicode));
-               d = d.strip("\x00");
 
                # Witnessed oddball tags with NULL bytes (ozzy.tag from id3lib)
-               strippedDate = "";
-               for c in d:
-                  if ord(c) != 0:
-                     strippedDate += c;
-               d = strippedDate;
+               d = d.strip("\x00");
 
                try:
                   self.date = time.strptime(d, fmt);


-- System Information:
Debian Release: 3.1
  APT prefers testing
  APT policy: (500, 'testing'), (50, 'unstable')
Architecture: i386 (i686)
Kernel: Linux 2.6.8-2-686
Locale: LANG=en_GB.UTF-8, LC_CTYPE=en_GB.UTF-8 (charmap=UTF-8)

Versions of packages python-eyed3 depends on:
ii  python                        2.3.4-5    An interactive high-level object-o

-- no debconf information

-- 
Aaron Crane


-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]

Reply via email to