uwb: handle radio controller events with out-of-range IDs correctly

If a radio controller event has an ID that's just out of range don't
read beyond the end of uwbd's event arrays.

Signed-off-by: Roel Kluin <roel.kluin@gmail.com>
Signed-off-by: David Vrabel <david.vrabel@csr.com>
This commit is contained in:
David Vrabel 2009-08-25 15:03:07 +01:00
parent 7c0a57d5c4
commit 3fafdd7cc8
1 changed files with 2 additions and 2 deletions

View File

@ -187,12 +187,12 @@ int uwbd_event_handle_urc(struct uwb_event *evt)
event = le16_to_cpu(evt->notif.rceb->wEvent); event = le16_to_cpu(evt->notif.rceb->wEvent);
context = evt->notif.rceb->bEventContext; context = evt->notif.rceb->bEventContext;
if (type > ARRAY_SIZE(uwbd_urc_evt_type_handlers)) if (type >= ARRAY_SIZE(uwbd_urc_evt_type_handlers))
goto out; goto out;
type_table = &uwbd_urc_evt_type_handlers[type]; type_table = &uwbd_urc_evt_type_handlers[type];
if (type_table->uwbd_events == NULL) if (type_table->uwbd_events == NULL)
goto out; goto out;
if (event > type_table->size) if (event >= type_table->size)
goto out; goto out;
handler = type_table->uwbd_events[event].handler; handler = type_table->uwbd_events[event].handler;
if (handler == NULL) if (handler == NULL)