diff options
author | Caolán McNamara <caolanm@redhat.com> | 2014-08-13 09:12:26 +0100 |
---|---|---|
committer | Markus Mohrhard <markus.mohrhard@googlemail.com> | 2014-08-13 15:07:42 -0500 |
commit | 1fb8c4dbd504cbacf748ec4564370ba5250834c0 (patch) | |
tree | 3844cf080e34b1d01d00ff2457c0f34eccb46927 | |
parent | a1910529662accd48460b9761293fef0583fb6fe (diff) |
valgrind + bff: don't add 0xffff oldcode
Invalid read of size 1
at 0x9DC6247: GIFLZWDecompressor::AddToTable(unsigned short, unsigned short) (decode.cxx:117)
Reviewed-on: https://gerrit.libreoffice.org/10905
Reviewed-by: David Tardon <dtardon@redhat.com>
Tested-by: David Tardon <dtardon@redhat.com>
(cherry picked from commit 5ae1557de992382ad945d61102326d5a61b6850a)
Change-Id: I9cea8dcd4a5eeaa1e793b9be96f82854b9d088af
Reviewed-on: https://gerrit.libreoffice.org/10911
Reviewed-by: Michael Stahl <mstahl@redhat.com>
Reviewed-by: Eike Rathke <erack@redhat.com>
Reviewed-by: Markus Mohrhard <markus.mohrhard@googlemail.com>
Tested-by: Markus Mohrhard <markus.mohrhard@googlemail.com>
-rw-r--r-- | vcl/source/filter/igif/decode.cxx | 11 |
1 files changed, 7 insertions, 4 deletions
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 { |