[gzip] Fix access of small compressed files (#45937).

* src/gzip/ftgzip.c (ft_gzip_stream_close): Avoid memory leak.

(ft_gzip_get_uncompressed_file): Correct byte order while reading
unsigned long value.  Without this change, the whole optimization of
accessing small files in `FT_Stream_OpenGzip' is never executed!  As
a consequence, access to PCF files in general (which are normally
small files) should be much improved now as originally intended.
2.6.5
Werner Lemberg 10 years ago
parent db5a4a9ae7
commit e40e8b33a1
  1. 12
      ChangeLog
  2. 7
      src/gzip/ftgzip.c

@ -1,3 +1,15 @@
2015-09-13 Werner Lemberg <wl@gnu.org>
[gzip] Fix access of small compressed files (#45937).
* src/gzip/ftgzip.c (ft_gzip_stream_close): Avoid memory leak.
(ft_gzip_get_uncompressed_file): Correct byte order while reading
unsigned long value. Without this change, the whole optimization of
accessing small files in `FT_Stream_OpenGzip' is never executed! As
a consequence, access to PCF files in general (which are normally
small files) should be much improved now as originally intended.
2015-09-11 Werner Lemberg <wl@gnu.org>
[psaux] Fix potential buffer overflow (#45922).

@ -557,6 +557,9 @@
stream->descriptor.pointer = NULL;
}
if ( !stream->read )
FT_FREE( stream->base );
}
@ -584,7 +587,7 @@
old_pos = stream->pos;
if ( !FT_Stream_Seek( stream, stream->size - 4 ) )
{
result = FT_Stream_ReadULong( stream, &error );
result = FT_Stream_ReadULongLE( stream, &error );
if ( error )
result = 0;
@ -685,7 +688,7 @@
stream->size = 0x7FFFFFFFL; /* don't know the real size! */
stream->pos = 0;
stream->base = 0;
stream->base = NULL;
stream->read = ft_gzip_stream_io;
stream->close = ft_gzip_stream_close;

Loading…
Cancel
Save