diff options
author | Michael Stahl <mstahl@redhat.com> | 2016-06-03 23:50:14 +0200 |
---|---|---|
committer | Miklos Vajna <vmiklos@collabora.co.uk> | 2016-06-07 07:30:12 +0000 |
commit | a895d9868a637bf2a3c2ffd8d26828c99ea8f40f (patch) | |
tree | fe93deebc18cd40cce904fcc35a1c3ddca7843fd /filter | |
parent | 2ae410617c9cb2a196b9d09b8ac51e8b75a71c64 (diff) |
filter: "tga" import: fix some endian issues in ImplReadPalette
Change-Id: Ia8ec7b7e19cf9b6b19497cbd77ae5a4e2fdccee7
(cherry picked from commit da4f7d5d76e054627b61521657d40141b9728e15)
Reviewed-on: https://gerrit.libreoffice.org/25993
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Miklos Vajna <vmiklos@collabora.co.uk>
Diffstat (limited to 'filter')
-rw-r--r-- | filter/source/graphicfilter/itga/itga.cxx | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/filter/source/graphicfilter/itga/itga.cxx b/filter/source/graphicfilter/itga/itga.cxx index 20a90061e4f5..6bf858c9e351 100644 --- a/filter/source/graphicfilter/itga/itga.cxx +++ b/filter/source/graphicfilter/itga/itga.cxx @@ -734,14 +734,21 @@ bool TGAReader::ImplReadPalette() break; case 32 : - m_rTGA.Read( mpColorMap, 4 * nColors ); + for (sal_uInt16 i = 0; i < nColors; i++) + { + m_rTGA.ReadUInt32(mpColorMap[i]); + } break; case 24 : { for ( sal_uLong i = 0; i < nColors; i++ ) { - m_rTGA.Read( &mpColorMap[ i ], 3 ); + sal_uInt8 nBlue; + sal_uInt8 nGreen; + sal_uInt8 nRed; + m_rTGA.ReadUChar(nBlue).ReadUChar(nGreen).ReadUChar(nRed); + mpColorMap[i] = (nRed << 16) | (nGreen << 8) | nBlue; } } break; |