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 majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html