diff options
author | Caolán McNamara <caolanm@redhat.com> | 2014-08-13 09:12:26 +0100 |
---|---|---|
committer | Caolán McNamara <caolanm@redhat.com> | 2014-08-13 09:16:09 +0100 |
commit | ddc178e07d92bef3d0ca3cc6de5917d8ebe10dc9 (patch) | |
tree | b8e4ae2e8d075507da4648385e9770c8fc0b4798 /vcl | |
parent | 60fddc87313d7dd0569af2bd15a27e7ee173de3d (diff) |
valgrind + bff: don't add 0xffff oldcode
Invalid read of size 1
at 0x9DC6247: GIFLZWDecompressor::AddToTable(unsigned short, unsigned short) (decode.cxx:117)
Change-Id: I9cea8dcd4a5eeaa1e793b9be96f82854b9d088af
Diffstat (limited to 'vcl')
-rw-r--r-- | vcl/qa/cppunit/graphicfilter/data/gif/pass/sf_3e0068c9b19bb548826bed0599f65745-15940-minimized.gif | bin | 0 -> 47778 bytes | |||
-rw-r--r-- | vcl/source/filter/igif/decode.cxx | 11 |
2 files changed, 7 insertions, 4 deletions
diff --git a/vcl/qa/cppunit/graphicfilter/data/gif/pass/sf_3e0068c9b19bb548826bed0599f65745-15940-minimized.gif b/vcl/qa/cppunit/graphicfilter/data/gif/pass/sf_3e0068c9b19bb548826bed0599f65745-15940-minimized.gif Binary files differnew file mode 100644 index 000000000000..47f5d4341ba6 --- /dev/null +++ b/vcl/qa/cppunit/graphicfilter/data/gif/pass/sf_3e0068c9b19bb548826bed0599f65745-15940-minimized.gif diff --git a/vcl/source/filter/igif/decode.cxx b/vcl/source/filter/igif/decode.cxx index f53c00572f13..85b417cb62f2 100644 --- a/vcl/source/filter/igif/decode.cxx +++ b/vcl/source/filter/igif/decode.cxx @@ -156,10 +156,13 @@ bool GIFLZWDecompressor::ProcessOneCode() } else if ( ( nCode > nEOICode ) && ( nCode <= nTableSize ) ) { - if ( nCode == nTableSize ) - AddToTable( nOldCode, nOldCode ); - else - AddToTable( nOldCode, nCode ); + if ( nOldCode != 0xffff ) + { + if ( nCode == nTableSize ) + AddToTable( nOldCode, nOldCode ); + else + AddToTable( nOldCode, nCode ); + } } else { |