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 ;)
> 
> ---
>  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
--
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