On Fri, May 07, 2010 at 08:52:00AM -0300, Mauro Carvalho Chehab wrote:
> Jarod Wilson wrote:
> > On Tue, May 04, 2010 at 06:06:41PM +0200, Dan Carpenter wrote:
> >> On Tue, May 04, 2010 at 10:03:18AM -0400, Jarod Wilson wrote:
> >>> @@ -1205,7 +1204,7 @@ static u32 imon_panel_key_lookup(u64 hw_code)
> >>>           if (imon_panel_key_table[i].hw_code == (code | 0xffee))
> >>>                   break;
> >>>  
> >>> - keycode = imon_panel_key_table[i % IMON_KEY_RELEASE_OFFSET].keycode;
> >>> + keycode = imon_panel_key_table[i].keycode;
> >>>  
> >>>   return keycode;
> >>>  }
> >> There is still potentially a problem here because if we don't hit the 
> >> break statement, then we're one past the end of the array.
> > 
> > D'oh. Okay, here's v2, should fix that buglet too.
> > 
> > This hack was used when the imon driver was using internal key lookup
> > routines, but became dead weight when the driver was converted to use
> > ir-core's key lookup routines. These bits simply didn't get removed,
> > drop 'em now.
> > 
> > Pointed out by Dan Carpenter.
> > 
> > v2: fix possible attempt to access beyond end of key table array,
> > also pointed out by Dan.
> 
> -ENOSOB
> 
> Please, add your SOB here ;)

D'oh.

Signed-off-by: Jarod Wilson <ja...@redhat.com>


> > ---
> >  drivers/media/IR/imon.c |   12 ++++++------
> >  1 files changed, 6 insertions(+), 6 deletions(-)
> > 
> > diff --git a/drivers/media/IR/imon.c b/drivers/media/IR/imon.c
> > index 27743eb..efe219a 100644
> > --- a/drivers/media/IR/imon.c
> > +++ b/drivers/media/IR/imon.c
> > @@ -55,7 +55,6 @@
> >  #define BIT_DURATION       250     /* each bit received is 250us */
> >  
> >  #define IMON_CLOCK_ENABLE_PACKETS  2
> > -#define IMON_KEY_RELEASE_OFFSET            1000
> >  
> >  /*** P R O T O T Y P E S ***/
> >  
> > @@ -1199,13 +1198,14 @@ static u32 imon_panel_key_lookup(u64 hw_code)
> >  {
> >     int i;
> >     u64 code = be64_to_cpu(hw_code);
> > -   u32 keycode;
> > +   u32 keycode = KEY_RESERVED;
> >  
> > -   for (i = 0; i < ARRAY_SIZE(imon_panel_key_table); i++)
> > -           if (imon_panel_key_table[i].hw_code == (code | 0xffee))
> > +   for (i = 0; i < ARRAY_SIZE(imon_panel_key_table); i++) {
> > +           if (imon_panel_key_table[i].hw_code == (code | 0xffee)) {
> > +                   keycode = imon_panel_key_table[i].keycode;
> >                     break;
> > -
> > -   keycode = imon_panel_key_table[i % IMON_KEY_RELEASE_OFFSET].keycode;
> > +           }
> > +   }
> >  
> >     return keycode;
> >  }
> > 
> 
> 
> -- 
> 
> Cheers,
> Mauro

-- 
Jarod Wilson
ja...@redhat.com

--
To unsubscribe from this list: send the line "unsubscribe linux-media" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to