File bnc641580_CVE-2010-3311.diff of Package freetype2

Index: freetype-2.4.2/src/base/ftstream.c
===================================================================
--- freetype-2.4.2.orig/src/base/ftstream.c
+++ freetype-2.4.2/src/base/ftstream.c
@@ -70,8 +70,16 @@
   {
     FT_Error  error = FT_Err_Ok;
 
+    /* note that seeking to the first position after the file is valid */
+    if ( pos > stream->size )
+    {
+      FT_ERROR(( "FT_Stream_Seek:"
+                 " invalid i/o; pos = 0x%lx, size = 0x%lx\n",
+                 pos, stream->size ));
+      error = FT_Err_Invalid_Stream_Operation;
+    }
 
-    if ( stream->read )
+    if ( !error && stream->read )
     {
       if ( stream->read( stream, pos, 0, 0 ) )
       {
@@ -82,15 +90,6 @@
         error = FT_Err_Invalid_Stream_Operation;
       }
     }
-    /* note that seeking to the first position after the file is valid */
-    else if ( pos > stream->size )
-    {
-      FT_ERROR(( "FT_Stream_Seek:"
-                 " invalid i/o; pos = 0x%lx, size = 0x%lx\n",
-                 pos, stream->size ));
-
-      error = FT_Err_Invalid_Stream_Operation;
-    }
 
     if ( !error )
       stream->pos = pos;
openSUSE Build Service is sponsored by