Slightly improve LZW_CLEAR handling.
* src/lzw/ftzopen.c (ft_lzwstate_io) <FT_LZW_PHASE_CODE>: Ensure that subsequent (modulo garbage byte(s)) LZW_CLEAR codes are handled as clear codes. This also re-sets old_code and old_char to predictable values, which is a little better than using `random' ones if the code following LZW_CLEAR is invalid.
This commit is contained in:
parent
83cb6c0049
commit
487913d9a6
10
ChangeLog
10
ChangeLog
|
@ -1,3 +1,13 @@
|
||||||
|
2011-09-11 Tomas Hoger <thoger@redhat.com>
|
||||||
|
|
||||||
|
Slightly improve LZW_CLEAR handling.
|
||||||
|
|
||||||
|
* src/lzw/ftzopen.c (ft_lzwstate_io) <FT_LZW_PHASE_CODE>:
|
||||||
|
Ensure that subsequent (modulo garbage byte(s)) LZW_CLEAR codes are
|
||||||
|
handled as clear codes. This also re-sets old_code and old_char to
|
||||||
|
predictable values, which is a little better than using `random'
|
||||||
|
ones if the code following LZW_CLEAR is invalid.
|
||||||
|
|
||||||
2011-09-11 Tomas Hoger <thoger@redhat.com>
|
2011-09-11 Tomas Hoger <thoger@redhat.com>
|
||||||
|
|
||||||
Add explicit LZW decompression stack size limit.
|
Add explicit LZW decompression stack size limit.
|
||||||
|
|
|
@ -321,11 +321,12 @@
|
||||||
/* why not LZW_FIRST-256 ? */
|
/* why not LZW_FIRST-256 ? */
|
||||||
state->free_ent = ( LZW_FIRST - 1 ) - 256;
|
state->free_ent = ( LZW_FIRST - 1 ) - 256;
|
||||||
state->buf_clear = 1;
|
state->buf_clear = 1;
|
||||||
c = ft_lzwstate_get_code( state );
|
|
||||||
if ( c < 0 )
|
|
||||||
goto Eof;
|
|
||||||
|
|
||||||
code = (FT_UInt)c;
|
/* not quite right, but at least more predictable */
|
||||||
|
old_code = 0;
|
||||||
|
old_char = 0;
|
||||||
|
|
||||||
|
goto NextCode;
|
||||||
}
|
}
|
||||||
|
|
||||||
in_code = code; /* save code for later */
|
in_code = code; /* save code for later */
|
||||||
|
|
Loading…
Reference in New Issue