gnunet-svn
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[GNUnet-SVN] r13817 - Extractor/src/plugins


From: gnunet
Subject: [GNUnet-SVN] r13817 - Extractor/src/plugins
Date: Sat, 27 Nov 2010 19:01:46 +0100

Author: grothoff
Date: 2010-11-27 19:01:46 +0100 (Sat, 27 Nov 2010)
New Revision: 13817

Modified:
   Extractor/src/plugins/id3v23_extractor.c
Log:
fkx

Modified: Extractor/src/plugins/id3v23_extractor.c
===================================================================
--- Extractor/src/plugins/id3v23_extractor.c    2010-11-27 17:54:44 UTC (rev 
13816)
+++ Extractor/src/plugins/id3v23_extractor.c    2010-11-27 18:01:46 UTC (rev 
13817)
@@ -136,6 +136,7 @@
   char *mime;
   enum EXTRACTOR_MetaType type;
   size_t off;
+  int obo;
 
   if ((size < 16) ||
       (data[0] != 0x49) ||
@@ -285,21 +286,24 @@
                  if (csize < 5)
                    return 0; /* malformed */
                  /* find end of description */
+                 obo = data[pos + 14] == '\0' ? 1 : 0; /* someone put a \0 in 
front of comments... */
+                 if (csize < 6)
+                   obo = 0;
                  switch (data[pos + 10])
                    {
                    case 0x00:
-                     word = EXTRACTOR_common_convert_to_utf8 ((const char *) 
&data[pos + 15],
-                                                              csize - 5, 
"ISO-8859-1");
+                     word = EXTRACTOR_common_convert_to_utf8 ((const char *) 
&data[pos + 14 + obo],
+                                                              csize - 4 - obo, 
"ISO-8859-1");
                      break;
                    case 0x01:
-                     word = EXTRACTOR_common_convert_to_utf8 ((const char *) 
&data[pos + 15],
-                                                              csize - 5, 
"UCS-2");
+                     word = EXTRACTOR_common_convert_to_utf8 ((const char *) 
&data[pos + 14 + obo],
+                                                              csize - 4 - obo, 
"UCS-2");
                      break;
                    default:
                      /* bad encoding byte,
                         try to convert from iso-8859-1 */
-                     word = EXTRACTOR_common_convert_to_utf8 ((const char *) 
&data[pos + 15],
-                                                              csize - 5, 
"ISO-8859-1");
+                     word = EXTRACTOR_common_convert_to_utf8 ((const char *) 
&data[pos + 14 + obo],
+                                                              csize - 4 - obo, 
"ISO-8859-1");
                      break;
                    }
                  break;




reply via email to

[Prev in Thread] Current Thread [Next in Thread]