--- src/base/ftstream.c 2010-10-13 10:06:22.000000000 -0400 +++ src/base/ftstream.c.oden 2010-10-13 10:11:09.000000000 -0400 @@ -59,8 +59,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 ) ) { @@ -71,15 +79,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;