diff options
Diffstat (limited to 'src/3rdparty/freetype/src/bzip2/ftbzip2.c')
-rw-r--r-- | src/3rdparty/freetype/src/bzip2/ftbzip2.c | 28 |
1 files changed, 17 insertions, 11 deletions
diff --git a/src/3rdparty/freetype/src/bzip2/ftbzip2.c b/src/3rdparty/freetype/src/bzip2/ftbzip2.c index 7e406b1612..cf94733762 100644 --- a/src/3rdparty/freetype/src/bzip2/ftbzip2.c +++ b/src/3rdparty/freetype/src/bzip2/ftbzip2.c @@ -8,11 +8,10 @@ /* parse compressed PCF fonts, as found with many X11 server */ /* distributions. */ /* */ -/* Copyright 2010, 2012-2014 by */ +/* Copyright 2010-2015 by */ /* Joel Klinghed. */ /* */ -/* Based on src/gzip/ftgzip.c, Copyright 2002 - 2010 by */ -/* David Turner, Robert Wilhelm, and Werner Lemberg. */ +/* based on `src/gzip/ftgzip.c' */ /* */ /* This file is part of the FreeType project, and may only be used, */ /* modified, and distributed under the terms of the FreeType project */ @@ -71,7 +70,7 @@ int items, int size ) { - FT_ULong sz = (FT_ULong)size * items; + FT_ULong sz = (FT_ULong)size * (FT_ULong)items; FT_Error error; FT_Pointer p = NULL; @@ -255,7 +254,10 @@ size = stream->read( stream, stream->pos, zip->input, FT_BZIP2_BUFFER_SIZE ); if ( size == 0 ) + { + zip->limit = zip->cursor; return FT_THROW( Invalid_Stream_Operation ); + } } else { @@ -264,7 +266,10 @@ size = FT_BZIP2_BUFFER_SIZE; if ( size == 0 ) + { + zip->limit = zip->cursor; return FT_THROW( Invalid_Stream_Operation ); + } FT_MEM_COPY( zip->input, stream->base + stream->pos, size ); } @@ -311,7 +316,8 @@ } else if ( err != BZ_OK ) { - error = FT_THROW( Invalid_Stream_Operation ); + zip->limit = zip->cursor; + error = FT_THROW( Invalid_Stream_Operation ); break; } } @@ -438,16 +444,16 @@ } - static FT_ULong - ft_bzip2_stream_io( FT_Stream stream, - FT_ULong pos, - FT_Byte* buffer, - FT_ULong count ) + static unsigned long + ft_bzip2_stream_io( FT_Stream stream, + unsigned long offset, + unsigned char* buffer, + unsigned long count ) { FT_BZip2File zip = (FT_BZip2File)stream->descriptor.pointer; - return ft_bzip2_file_io( zip, pos, buffer, count ); + return ft_bzip2_file_io( zip, offset, buffer, count ); } |