Blame SOURCES/freetype-2.4.11-signed.patch

4c33b1
--- freetype-2.4.11/src/base/ftstream.c
4c33b1
+++ freetype-2.4.11/src/base/ftstream.c
4c33b1
@@ -373,6 +373,25 @@
4c33b1
   }
4c33b1
 
4c33b1
 
4c33b1
+  FT_BASE_DEF( FT_Short )
4c33b1
+  FT_Stream_GetShort( FT_Stream  stream )
4c33b1
+  {
4c33b1
+    FT_Byte*  p;
4c33b1
+    FT_Short  result;
4c33b1
+
4c33b1
+
4c33b1
+    FT_ASSERT( stream && stream->cursor );
4c33b1
+
4c33b1
+    result         = 0;
4c33b1
+    p              = stream->cursor;
4c33b1
+    if ( p + 1 < stream->limit )
4c33b1
+      result       = FT_NEXT_SHORT( p );
4c33b1
+    stream->cursor = p;
4c33b1
+
4c33b1
+    return result;
4c33b1
+  }
4c33b1
+
4c33b1
+
4c33b1
   FT_BASE_DEF( FT_UShort )
4c33b1
   FT_Stream_GetUShortLE( FT_Stream  stream )
4c33b1
   {
4c33b1
@@ -392,6 +411,25 @@
4c33b1
   }
4c33b1
 
4c33b1
 
4c33b1
+  FT_BASE_DEF( FT_Short )
4c33b1
+  FT_Stream_GetShortLE( FT_Stream  stream )
4c33b1
+  {
4c33b1
+    FT_Byte*  p;
4c33b1
+    FT_Short  result;
4c33b1
+
4c33b1
+
4c33b1
+    FT_ASSERT( stream && stream->cursor );
4c33b1
+
4c33b1
+    result         = 0;
4c33b1
+    p              = stream->cursor;
4c33b1
+    if ( p + 1 < stream->limit )
4c33b1
+      result       = FT_NEXT_SHORT_LE( p );
4c33b1
+    stream->cursor = p;
4c33b1
+
4c33b1
+    return result;
4c33b1
+  }
4c33b1
+
4c33b1
+
4c33b1
   FT_BASE_DEF( FT_ULong )
4c33b1
   FT_Stream_GetUOffset( FT_Stream  stream )
4c33b1
   {
4c33b1
@@ -410,6 +448,24 @@
4c33b1
   }
4c33b1
 
4c33b1
 
4c33b1
+  FT_BASE_DEF( FT_Long )
4c33b1
+  FT_Stream_GetOffset( FT_Stream  stream )
4c33b1
+  {
4c33b1
+    FT_Byte*  p;
4c33b1
+    FT_Long   result;
4c33b1
+
4c33b1
+
4c33b1
+    FT_ASSERT( stream && stream->cursor );
4c33b1
+
4c33b1
+    result         = 0;
4c33b1
+    p              = stream->cursor;
4c33b1
+    if ( p + 2 < stream->limit )
4c33b1
+      result       = FT_NEXT_OFF3( p );
4c33b1
+    stream->cursor = p;
4c33b1
+    return result;
4c33b1
+  }
4c33b1
+
4c33b1
+
4c33b1
   FT_BASE_DEF( FT_ULong )
4c33b1
   FT_Stream_GetULong( FT_Stream  stream )
4c33b1
   {
4c33b1
@@ -428,6 +484,24 @@
4c33b1
   }
4c33b1
 
4c33b1
 
4c33b1
+  FT_BASE_DEF( FT_Long )
4c33b1
+  FT_Stream_GetLong( FT_Stream  stream )
4c33b1
+  {
4c33b1
+    FT_Byte*  p;
4c33b1
+    FT_Long   result;
4c33b1
+
4c33b1
+
4c33b1
+    FT_ASSERT( stream && stream->cursor );
4c33b1
+
4c33b1
+    result         = 0;
4c33b1
+    p              = stream->cursor;
4c33b1
+    if ( p + 3 < stream->limit )
4c33b1
+      result       = FT_NEXT_LONG( p );
4c33b1
+    stream->cursor = p;
4c33b1
+    return result;
4c33b1
+  }
4c33b1
+
4c33b1
+
4c33b1
   FT_BASE_DEF( FT_ULong )
4c33b1
   FT_Stream_GetULongLE( FT_Stream  stream )
4c33b1
   {
4c33b1
@@ -446,6 +520,24 @@
4c33b1
   }
4c33b1
 
4c33b1
 
4c33b1
+  FT_BASE_DEF( FT_Long )
4c33b1
+  FT_Stream_GetLongLE( FT_Stream  stream )
4c33b1
+  {
4c33b1
+    FT_Byte*  p;
4c33b1
+    FT_Long   result;
4c33b1
+
4c33b1
+
4c33b1
+    FT_ASSERT( stream && stream->cursor );
4c33b1
+
4c33b1
+    result         = 0;
4c33b1
+    p              = stream->cursor;
4c33b1
+    if ( p + 3 < stream->limit )
4c33b1
+      result       = FT_NEXT_LONG_LE( p );
4c33b1
+    stream->cursor = p;
4c33b1
+    return result;
4c33b1
+  }
4c33b1
+
4c33b1
+
4c33b1
   FT_BASE_DEF( FT_Char )
4c33b1
   FT_Stream_ReadChar( FT_Stream  stream,
4c33b1
                       FT_Error*  error )
4c33b1
@@ -530,6 +622,53 @@
4c33b1
   }
4c33b1
 
4c33b1
 
4c33b1
+  FT_BASE_DEF( FT_Short )
4c33b1
+  FT_Stream_ReadShort( FT_Stream  stream,
4c33b1
+                       FT_Error*  error )
4c33b1
+  {
4c33b1
+    FT_Byte   reads[2];
4c33b1
+    FT_Byte*  p = 0;
4c33b1
+    FT_Short  result = 0;
4c33b1
+
4c33b1
+
4c33b1
+    FT_ASSERT( stream );
4c33b1
+
4c33b1
+    *error = FT_Err_Ok;
4c33b1
+
4c33b1
+    if ( stream->pos + 1 < stream->size )
4c33b1
+    {
4c33b1
+      if ( stream->read )
4c33b1
+      {
4c33b1
+        if ( stream->read( stream, stream->pos, reads, 2L ) != 2L )
4c33b1
+          goto Fail;
4c33b1
+
4c33b1
+        p = reads;
4c33b1
+      }
4c33b1
+      else
4c33b1
+      {
4c33b1
+        p = stream->base + stream->pos;
4c33b1
+      }
4c33b1
+
4c33b1
+      if ( p )
4c33b1
+        result = FT_NEXT_SHORT( p );
4c33b1
+    }
4c33b1
+    else
4c33b1
+      goto Fail;
4c33b1
+
4c33b1
+    stream->pos += 2;
4c33b1
+
4c33b1
+    return result;
4c33b1
+
4c33b1
+  Fail:
4c33b1
+    *error = FT_Err_Invalid_Stream_Operation;
4c33b1
+    FT_ERROR(( "FT_Stream_ReadShort:"
4c33b1
+               " invalid i/o; pos = 0x%lx, size = 0x%lx\n",
4c33b1
+               stream->pos, stream->size ));
4c33b1
+
4c33b1
+    return 0;
4c33b1
+  }
4c33b1
+
4c33b1
+
4c33b1
   FT_BASE_DEF( FT_UShort )
4c33b1
   FT_Stream_ReadUShortLE( FT_Stream  stream,
4c33b1
                           FT_Error*  error )
4c33b1
@@ -577,6 +716,53 @@
4c33b1
   }
4c33b1
 
4c33b1
 
4c33b1
+  FT_BASE_DEF( FT_Short )
4c33b1
+  FT_Stream_ReadShortLE( FT_Stream  stream,
4c33b1
+                         FT_Error*  error )
4c33b1
+  {
4c33b1
+    FT_Byte   reads[2];
4c33b1
+    FT_Byte*  p = 0;
4c33b1
+    FT_Short  result = 0;
4c33b1
+
4c33b1
+
4c33b1
+    FT_ASSERT( stream );
4c33b1
+
4c33b1
+    *error = FT_Err_Ok;
4c33b1
+
4c33b1
+    if ( stream->pos + 1 < stream->size )
4c33b1
+    {
4c33b1
+      if ( stream->read )
4c33b1
+      {
4c33b1
+        if ( stream->read( stream, stream->pos, reads, 2L ) != 2L )
4c33b1
+          goto Fail;
4c33b1
+
4c33b1
+        p = reads;
4c33b1
+      }
4c33b1
+      else
4c33b1
+      {
4c33b1
+        p = stream->base + stream->pos;
4c33b1
+      }
4c33b1
+
4c33b1
+      if ( p )
4c33b1
+        result = FT_NEXT_SHORT_LE( p );
4c33b1
+    }
4c33b1
+    else
4c33b1
+      goto Fail;
4c33b1
+
4c33b1
+    stream->pos += 2;
4c33b1
+
4c33b1
+    return result;
4c33b1
+
4c33b1
+  Fail:
4c33b1
+    *error = FT_Err_Invalid_Stream_Operation;
4c33b1
+    FT_ERROR(( "FT_Stream_ReadShortLE:"
4c33b1
+               " invalid i/o; pos = 0x%lx, size = 0x%lx\n",
4c33b1
+               stream->pos, stream->size ));
4c33b1
+
4c33b1
+    return 0;
4c33b1
+  }
4c33b1
+
4c33b1
+
4c33b1
   FT_BASE_DEF( FT_ULong )
4c33b1
   FT_Stream_ReadUOffset( FT_Stream  stream,
4c33b1
                          FT_Error*  error )
4c33b1
@@ -624,6 +810,53 @@
4c33b1
   }
4c33b1
 
4c33b1
 
4c33b1
+  FT_BASE_DEF( FT_Long )
4c33b1
+  FT_Stream_ReadOffset( FT_Stream  stream,
4c33b1
+                        FT_Error*  error )
4c33b1
+  {
4c33b1
+    FT_Byte   reads[3];
4c33b1
+    FT_Byte*  p = 0;
4c33b1
+    FT_Long   result = 0;
4c33b1
+
4c33b1
+
4c33b1
+    FT_ASSERT( stream );
4c33b1
+
4c33b1
+    *error = FT_Err_Ok;
4c33b1
+
4c33b1
+    if ( stream->pos + 2 < stream->size )
4c33b1
+    {
4c33b1
+      if ( stream->read )
4c33b1
+      {
4c33b1
+        if (stream->read( stream, stream->pos, reads, 3L ) != 3L )
4c33b1
+          goto Fail;
4c33b1
+
4c33b1
+        p = reads;
4c33b1
+      }
4c33b1
+      else
4c33b1
+      {
4c33b1
+        p = stream->base + stream->pos;
4c33b1
+      }
4c33b1
+
4c33b1
+      if ( p )
4c33b1
+        result = FT_NEXT_OFF3( p );
4c33b1
+    }
4c33b1
+    else
4c33b1
+      goto Fail;
4c33b1
+
4c33b1
+    stream->pos += 3;
4c33b1
+
4c33b1
+    return result;
4c33b1
+
4c33b1
+  Fail:
4c33b1
+    *error = FT_Err_Invalid_Stream_Operation;
4c33b1
+    FT_ERROR(( "FT_Stream_ReadOffset:"
4c33b1
+               " invalid i/o; pos = 0x%lx, size = 0x%lx\n",
4c33b1
+               stream->pos, stream->size ));
4c33b1
+
4c33b1
+    return 0;
4c33b1
+  }
4c33b1
+
4c33b1
+
4c33b1
   FT_BASE_DEF( FT_ULong )
4c33b1
   FT_Stream_ReadULong( FT_Stream  stream,
4c33b1
                        FT_Error*  error )
4c33b1
@@ -671,6 +904,53 @@
4c33b1
   }
4c33b1
 
4c33b1
 
4c33b1
+  FT_BASE_DEF( FT_Long )
4c33b1
+  FT_Stream_ReadLong( FT_Stream  stream,
4c33b1
+                      FT_Error*  error )
4c33b1
+  {
4c33b1
+    FT_Byte   reads[4];
4c33b1
+    FT_Byte*  p = 0;
4c33b1
+    FT_Long   result = 0;
4c33b1
+
4c33b1
+
4c33b1
+    FT_ASSERT( stream );
4c33b1
+
4c33b1
+    *error = FT_Err_Ok;
4c33b1
+
4c33b1
+    if ( stream->pos + 3 < stream->size )
4c33b1
+    {
4c33b1
+      if ( stream->read )
4c33b1
+      {
4c33b1
+        if ( stream->read( stream, stream->pos, reads, 4L ) != 4L )
4c33b1
+          goto Fail;
4c33b1
+
4c33b1
+        p = reads;
4c33b1
+      }
4c33b1
+      else
4c33b1
+      {
4c33b1
+        p = stream->base + stream->pos;
4c33b1
+      }
4c33b1
+
4c33b1
+      if ( p )
4c33b1
+        result = FT_NEXT_LONG( p );
4c33b1
+    }
4c33b1
+    else
4c33b1
+      goto Fail;
4c33b1
+
4c33b1
+    stream->pos += 4;
4c33b1
+
4c33b1
+    return result;
4c33b1
+
4c33b1
+  Fail:
4c33b1
+    *error = FT_Err_Invalid_Stream_Operation;
4c33b1
+    FT_ERROR(( "FT_Stream_ReadLong:"
4c33b1
+               " invalid i/o; pos = 0x%lx, size = 0x%lx\n",
4c33b1
+               stream->pos, stream->size ));
4c33b1
+
4c33b1
+    return 0;
4c33b1
+  }
4c33b1
+
4c33b1
+
4c33b1
   FT_BASE_DEF( FT_ULong )
4c33b1
   FT_Stream_ReadULongLE( FT_Stream  stream,
4c33b1
                          FT_Error*  error )
4c33b1
@@ -714,6 +994,53 @@
4c33b1
                " invalid i/o; pos = 0x%lx, size = 0x%lx\n",
4c33b1
                stream->pos, stream->size ));
4c33b1
 
4c33b1
+    return 0;
4c33b1
+  }
4c33b1
+
4c33b1
+
4c33b1
+  FT_BASE_DEF( FT_Long )
4c33b1
+  FT_Stream_ReadLongLE( FT_Stream  stream,
4c33b1
+                        FT_Error*  error )
4c33b1
+  {
4c33b1
+    FT_Byte   reads[4];
4c33b1
+    FT_Byte*  p = 0;
4c33b1
+    FT_Long   result = 0;
4c33b1
+
4c33b1
+
4c33b1
+    FT_ASSERT( stream );
4c33b1
+
4c33b1
+    *error = FT_Err_Ok;
4c33b1
+
4c33b1
+    if ( stream->pos + 3 < stream->size )
4c33b1
+    {
4c33b1
+      if ( stream->read )
4c33b1
+      {
4c33b1
+        if ( stream->read( stream, stream->pos, reads, 4L ) != 4L )
4c33b1
+          goto Fail;
4c33b1
+
4c33b1
+        p = reads;
4c33b1
+      }
4c33b1
+      else
4c33b1
+      {
4c33b1
+        p = stream->base + stream->pos;
4c33b1
+      }
4c33b1
+
4c33b1
+      if ( p )
4c33b1
+        result = FT_NEXT_LONG_LE( p );
4c33b1
+    }
4c33b1
+    else
4c33b1
+      goto Fail;
4c33b1
+
4c33b1
+    stream->pos += 4;
4c33b1
+
4c33b1
+    return result;
4c33b1
+
4c33b1
+  Fail:
4c33b1
+    *error = FT_Err_Invalid_Stream_Operation;
4c33b1
+    FT_ERROR(( "FT_Stream_ReadLongLE:"
4c33b1
+               " invalid i/o; pos = 0x%lx, size = 0x%lx\n",
4c33b1
+               stream->pos, stream->size ));
4c33b1
+
4c33b1
     return 0;
4c33b1
   }
4c33b1