aboutsummaryrefslogtreecommitdiff
path: root/lib/libexif/ExifParse.cpp
diff options
context:
space:
mode:
authorvdrfan <vdrfan-nospam-@xbmc.org>2011-08-01 16:53:16 +0200
committervdrfan <vdrfan-nospam-@xbmc.org>2011-08-01 16:53:16 +0200
commit00e3095dd47d6474fa6befcbd85157e27f6f68fa (patch)
treea4aed879cc1c52d75777a8267fb78f0c83a12f0b /lib/libexif/ExifParse.cpp
parentf29e6b5733709796788c6c44fa04568b16421b65 (diff)
fixed: make sure libexif is using the correct byte order (intel or motorola) when processing gps information (fixes #8427)
Diffstat (limited to 'lib/libexif/ExifParse.cpp')
-rw-r--r--lib/libexif/ExifParse.cpp12
1 files changed, 6 insertions, 6 deletions
diff --git a/lib/libexif/ExifParse.cpp b/lib/libexif/ExifParse.cpp
index 41690df245..74ecbbef78 100644
--- a/lib/libexif/ExifParse.cpp
+++ b/lib/libexif/ExifParse.cpp
@@ -810,15 +810,15 @@ void CExifParse::ProcessGpsInfo(
const unsigned char* const OffsetBase,
unsigned ExifLength)
{
- int NumDirEntries = Get16(DirStart);
+ int NumDirEntries = Get16(DirStart, m_MotorolaOrder);
for (int de=0;de<NumDirEntries;de++)
{
const unsigned char* DirEntry = DIR_ENTRY_ADDR(DirStart, de);
- unsigned Tag = Get16(DirEntry);
- unsigned Format = Get16(DirEntry+2);
- unsigned Components = (unsigned)Get32(DirEntry+4);
+ unsigned Tag = Get16(DirEntry, m_MotorolaOrder);
+ unsigned Format = Get16(DirEntry+2, m_MotorolaOrder);
+ unsigned Components = (unsigned)Get32(DirEntry+4, m_MotorolaOrder);
if ((Format-1) >= NUM_FORMATS)
{
// (-1) catches illegal zero case as unsigned underflows to positive large.
@@ -834,7 +834,7 @@ void CExifParse::ProcessGpsInfo(
if (ByteCount > 4)
{
- unsigned OffsetVal = (unsigned)Get32(DirEntry+8);
+ unsigned OffsetVal = (unsigned)Get32(DirEntry+8, m_MotorolaOrder);
// If its bigger than 4 bytes, the dir entry contains an offset.
if (OffsetVal+ByteCount > ExifLength)
{
@@ -878,7 +878,7 @@ void CExifParse::ProcessGpsInfo(
case TAG_GPS_ALT:
{
char temp[18];
- sprintf(temp,"%dm", Get32(ValuePtr));
+ sprintf(temp,"%dm", Get32(ValuePtr, m_MotorolaOrder));
strcat(m_ExifInfo->GpsAlt, temp);
}
break;