From patchwork Sat Dec 15 02:48:57 2012 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: GerardK X-Patchwork-Id: 15892 Received: from localhost ([127.0.0.1] helo=www.linuxtv.org) by www.linuxtv.org with esmtp (Exim 4.72) (envelope-from ) id 1TjhoL-00071N-0g; Sat, 15 Dec 2012 03:49:09 +0100 Received: from mail.tu-berlin.de ([130.149.7.33]) by www.linuxtv.org with esmtp (Exim 4.72) (envelope-from ) id 1TjhoJ-00071H-8q for vdr@linuxtv.org; Sat, 15 Dec 2012 03:49:07 +0100 X-tubIT-Incoming-IP: 66.94.237.203 Received: from nm2.access.bullet.mail.mud.yahoo.com ([66.94.237.203]) by mail.tu-berlin.de (exim-4.75/mailfrontend-2) with esmtps [TLSv1:AES256-SHA:256] for id 1TjhoI-0005LZ-Ij; Sat, 15 Dec 2012 03:49:07 +0100 Received: from [66.94.237.196] by nm2.access.bullet.mail.mud.yahoo.com with NNFMP; 15 Dec 2012 02:49:04 -0000 Received: from [98.138.85.44] by tm7.access.bullet.mail.mud.yahoo.com with NNFMP; 15 Dec 2012 02:49:04 -0000 Received: from [127.0.0.1] by smtp101.vzn.mail.ne1.yahoo.com with NNFMP; 15 Dec 2012 02:49:04 -0000 X-Yahoo-Newman-Id: 51471.85166.bm@smtp101.vzn.mail.ne1.yahoo.com X-Yahoo-Newman-Property: ymail-3 X-YMail-OSG: syNJtr8VM1lN2m_b9xYN0tfZdgqjwXp3yPrKUG8hts0ccAX _NqLfdJbmIJigOOcgDKbbs8f9WxOaGYxOYEqo7KPNVGdlKl0F7qYOtDH5kCB 27i98.u56SIjT6zD0In.nmghBhgeam4M9X1udlTapj9ZsjAw97LmWcglGI8L bXS5QxJeU52iUrF9UZf8iZzXe70T9oA9TynmI5sEO80ONy3_3BCMdwEVeLYd c.GFdaWFLU45FR9NtS9O17IQ6DdDnBdcXand5soeo7vV7r8T_rzLXmRikC7J KY6TDpABGygyWwUWN6DFR5p8wbvtW0T3ep7Gko.pcQqmZm0pPeA323kn_Gh. ePoz7F2tNzipR8jzGwJLDzf6EYocRPDfawLhDJCvawdAyZ3Z8FV2ZBIAz12t s1.lweBqaa1fiBOZC_mJdEfSgkbpdnAVEUMLVFIFX9E9nd2I4rybvlkF.ErK WbnCBsx.x43WcTpiHlXNHprUYFij1 X-Yahoo-SMTP: aK66uyyswBB2itS2hWhGYZbaJ1bxZcjmm55Q7ulN6GId Received: from hobbes (gerardk5@71.189.50.239 with login) by smtp101.vzn.mail.ne1.yahoo.com with SMTP; 15 Dec 2012 02:49:03 +0000 UTC From: "GerardK" To: Date: Fri, 14 Dec 2012 18:48:57 -0800 Message-ID: <46C1E24DA7714477BF4F2E1F22E20347@hobbes> MIME-Version: 1.0 X-Priority: 3 (Normal) X-MSMail-Priority: Normal X-Mailer: Microsoft Outlook, Build 10.0.6863 Importance: Normal Thread-Index: Ac3aaM1V3DZG79nxTuCHJh75ggmQdgAAw1sgAABKBvA= X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2900.6157 X-PMX-Version: 5.6.1.2065439, Antispam-Engine: 2.7.2.376379, Antispam-Data: 2012.12.15.23922 X-PMX-Spam: Gauge=X, Probability=10%, Report=' RCVD_YAHOO_SMTP 0.5, FROM_NAME_ONE_WORD 0.05, HTML_00_01 0.05, HTML_00_10 0.05, MSGID_ADDED_BY_MTA 0.05, BODYTEXTP_SIZE_3000_LESS 0, BODY_SIZE_1000_1099 0, BODY_SIZE_2000_LESS 0, BODY_SIZE_5000_LESS 0, BODY_SIZE_7000_LESS 0, DATE_TZ_NA 0, FORGED_MUA_OUTLOOK 0, INVALID_MSGID_NO_FQDN 0, NO_URI_FOUND 0, WEBMAIL_SOURCE 0, __CT 0, __CTE 0, __CT_TEXT_PLAIN 0, __FROM_ATT 0, __HAS_FROM 0, __HAS_MSGID 0, __HAS_MSMAIL_PRI 0, __HAS_X_MAILER 0, __HAS_X_PRIORITY 0, __MIME_TEXT_ONLY 0, __MIME_VERSION 0, __OUTLOOK_MUA 0, __OUTLOOK_MUA_1 0, __RDNS_YAHOO 0, __SANE_MSGID 0, __SUBJ_ALPHA_END 0, __TO_MALFORMED_2 0, __TO_NO_NAME 0, __USER_AGENT_MS_GENERIC 0' X-LSpam-Score: 1.6 (+) X-LSpam-Report: No, score=1.6 required=5.0 tests=BAYES_50=0.8, RDNS_NONE=0.793, UNPARSEABLE_RELAY=0.001 autolearn=no Subject: [vdr] [PATCH] osd GetBitmap() causes infinite loop X-BeenThere: vdr@linuxtv.org X-Mailman-Version: 2.1.13 Precedence: list Reply-To: VDR Mailing List List-Id: VDR Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: vdr-bounces@linuxtv.org Errors-To: vdr-bounces@linuxtv.org Hi there The softdevice plugin was getting stuck in an infinite loop because of a bogus return from the GetBitmap() function in osd.c. This function should always return NULL when the 'Area' argument is greater than or equal to 'numBitmaps'. Regards -- Gerard = = = = = = = = = = = = = = = = = = = = = = = = = = = = diff -pruN a/osd.c b/osd.c --- a/osd.c    2012-06-09 07:37:24.000000000 -0700 +++ b/osd.c    2012-12-14 17:36:27.000000000 -0800 @@ -1683,9 +1683,9 @@ void cOsd::SetAntiAliasGranularity(uint  cBitmap *cOsd::GetBitmap(int Area)  { -  if (isTrueColor) -     Area = 0; // returns the dummy bitmap -  return Area < numBitmaps ? bitmaps[Area] : NULL; +  /* TrueColor gets the dummy bitmap */ +  return Area < numBitmaps ? (isTrueColor ? bitmaps[0] : bitmaps[Area]) \ +            : NULL;  }  cPixmap *cOsd::CreatePixmap(int Layer, const cRect &ViewPort, const cRect &DrawPort)