Commit 3650f8016588ecbf89eb3034c45111b77c3c3ca4

Huw Davies 2012-03-14T18:29:57

[sfnt] A refinement of the previous commit. * src/sfnt/sfobjs.c (tt_name_entry_ascii_from_utf16, tt_name_entry_ascii_from_other): Stop at null byte.

diff --git a/ChangeLog b/ChangeLog
index c42508c..d723dfc 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,12 @@
 2012-03-14  Huw Davies  <huw@codeweavers.com>
 
+	[sfnt] A refinement of the previous commit.
+
+	* src/sfnt/sfobjs.c (tt_name_entry_ascii_from_utf16,
+	tt_name_entry_ascii_from_other): Stop at null byte.
+
+2012-03-14  Huw Davies  <huw@codeweavers.com>
+
 	[sfnt] Add `name' table compatibility to MS Windows.
 
 	* src/sfnt/sfobjs.c (tt_name_entry_ascii_from_utf16,
diff --git a/src/sfnt/sfobjs.c b/src/sfnt/sfobjs.c
index 3b9fd47..2bc4bd9 100644
--- a/src/sfnt/sfobjs.c
+++ b/src/sfnt/sfobjs.c
@@ -64,13 +64,17 @@
     for ( n = 0; n < len; n++ )
     {
       code = FT_NEXT_USHORT( read );
-      if ( code != 0 && ( code < 32 || code > 127 ) )
+
+      if ( code == 0 )
+        break;
+
+      if ( code < 32 || code > 127 )
         code = '?';
 
       string[n] = (char)code;
     }
 
-    string[len] = 0;
+    string[n] = 0;
 
     return string;
   }
@@ -95,13 +99,17 @@
     for ( n = 0; n < len; n++ )
     {
       code = *read++;
-      if ( code != 0 && ( code < 32 || code > 127 ) )
+
+      if ( code == 0 )
+        break;
+
+      if ( code < 32 || code > 127 )
         code = '?';
 
       string[n] = (char)code;
     }
 
-    string[len] = 0;
+    string[n] = 0;
 
     return string;
   }