[PATCH 1/3] Check MAX_TS_FILTER_CHAIN in ts_filter_destroy_chain
Nelson Castillo
nelsoneci at gmail.com
Mon Dec 15 06:49:15 CET 2008
We need to check for MAX_TS_FILTER_CHAIN so that we
don't overrun the array of ts_filter pointers when we
have MAX_TS_FILTER_CHAIN filters.
- Check the boundary
- Small cleanups
Signed-off-by: Nelson Castillo <nelsoneci at gmail.com>
---
drivers/input/touchscreen/ts_filter.c | 8 +++++---
1 files changed, 5 insertions(+), 3 deletions(-)
diff --git a/drivers/input/touchscreen/ts_filter.c b/drivers/input/touchscreen/ts_filter.c
index 4c650a5..e141bd8 100644
--- a/drivers/input/touchscreen/ts_filter.c
+++ b/drivers/input/touchscreen/ts_filter.c
@@ -29,13 +29,13 @@ int ts_filter_create_chain(struct ts_filter_api **api, void **config,
if (!api)
return 0;
- while (*api && (count < MAX_TS_FILTER_CHAIN)) {
+ while (*api && count < MAX_TS_FILTER_CHAIN) {
*list = ((*api)->create)(*config++, count_coords);
if (!*list) {
printk(KERN_ERR "Filter %d failed init\n", count);
return count;
}
- (*list)->api = (struct ts_filter_api *)*api++;
+ (*list)->api = *api++;
if (last)
last->next = *list;
last = *list;
@@ -50,8 +50,10 @@ EXPORT_SYMBOL_GPL(ts_filter_create_chain);
void ts_filter_destroy_chain(struct ts_filter **list)
{
struct ts_filter **first;
+ int count = 0;
+
first = list;
- while (*list) {
+ while (*list && count++ < MAX_TS_FILTER_CHAIN) {
((*list)->api->destroy)(*list);
list++;
}
More information about the openmoko-kernel
mailing list