From 4f7523a3a29297079aac404f4f5021dec6ddbe97 Mon Sep 17 00:00:00 2001 From: Klaus Schmidinger Date: Tue, 8 May 2012 08:27:24 +0200 Subject: [PATCH] Fixed character comparisons in cSubtitleObject::DecodeCharacterString() --- CONTRIBUTORS | 4 ++++ HISTORY | 4 +++- dvbsubtitle.c | 4 ++-- 3 files changed, 9 insertions(+), 3 deletions(-) diff --git a/CONTRIBUTORS b/CONTRIBUTORS index 19573528..324b37ab 100644 --- a/CONTRIBUTORS +++ b/CONTRIBUTORS @@ -2873,3 +2873,7 @@ Ralf Schueler Marcus Roscher for reporting a problem with cDevice::StillPicture(), which called the derived class's function even if no buffer has been allocated + +Reinhard Mantey + for reporting a problem with character comparisons in + cSubtitleObject::DecodeCharacterString() diff --git a/HISTORY b/HISTORY index b494fd05..6800e091 100644 --- a/HISTORY +++ b/HISTORY @@ -7052,7 +7052,7 @@ Video Disk Recorder Revision History - Fixed handling IDLEPRIORITY in cDvbDevice::ProvidesChannel() (thanks to Frank Schmirler). -2012-05-06: Version 1.7.28 +2012-05-08: Version 1.7.28 - Fixed cPixmapMemory::DrawEllipse() for quadrants -1 and -4. - Fixed getting the maximum short channel name length in case there are no short names @@ -7094,3 +7094,5 @@ Video Disk Recorder Revision History - The new functions cControl::GetRecording() and cControl::GetHeader() can be used to retrieve information about what the current player is playing. - Fixed a possible high CPU load when pausing replay (thanks to Reinhard Nissl). +- Fixed character comparisons in cSubtitleObject::DecodeCharacterString() (reported + by Reinhard Mantey). diff --git a/dvbsubtitle.c b/dvbsubtitle.c index ab755c4b..99550697 100644 --- a/dvbsubtitle.c +++ b/dvbsubtitle.c @@ -7,7 +7,7 @@ * Original author: Marco Schluessler * With some input from the "subtitle plugin" by Pekka Virtanen * - * $Id: dvbsubtitle.c 2.31 2012/03/16 11:56:56 kls Exp $ + * $Id: dvbsubtitle.c 2.32 2012/05/08 08:17:17 kls Exp $ */ @@ -217,7 +217,7 @@ void cSubtitleObject::DecodeCharacterString(const uchar *Data, int NumberOfCodes char txt[NumberOfCodes + 1]; char *p = txt; for (int i = 2; i < NumberOfCodes; ++i) { - char c = Data[i * 2 + 1] & 0xFF; + uchar c = Data[i * 2 + 1] & 0xFF; if (c == 0) break; if (' ' <= c && c <= '~' || c == '\n' || 0xA0 <= c)