summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCaolán McNamara <caolanm@redhat.com>2014-08-13 09:12:26 +0100
committerMarkus Mohrhard <markus.mohrhard@googlemail.com>2014-08-13 15:07:42 -0500
commit1fb8c4dbd504cbacf748ec4564370ba5250834c0 (patch)
tree3844cf080e34b1d01d00ff2457c0f34eccb46927
parenta1910529662accd48460b9761293fef0583fb6fe (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.cxx11
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
{