db: remove bogus parameter information from hook type functions
commitfd843d9034889d8bde6fec993be61672e97cf66a
authorDan Carpenter <dan.carpenter@oracle.com>
Mon, 15 Sep 2014 11:08:37 +0000 (15 14:08 +0300)
committerDan Carpenter <dan.carpenter@oracle.com>
Mon, 15 Sep 2014 11:08:37 +0000 (15 14:08 +0300)
tree7d781d0d74a58f9ecf87c95feeb5db9f5a1a3694
parent5bf73f473d27d5da82a922f27b80328344a177ad
db: remove bogus parameter information from hook type functions

Say you have a timer function, then you normally register it like:

add_timer(my_function, my_data);

There are lots of timers and it doesn't make sense to pass on the
my_data information from all of them.  They all get merged together.  If
even one of them is tainted as user data then they all get tainted.  It
causes a lot of false positives.

A better fix would be to separate the functions out so we don't lose the
taint flag on the functions that need it.  But for now it causes too much
false positives so let's throw out all the bogus data.

The way this works is that if we call a function which was passed in as
a parameter and we pass a data pointer that we also got as a parameter and
the data pointer is a void pointer or a ulong pointer then ditch it.  It's
not perfect.

Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
smatch_data/db/create_db.sh
smatch_data/db/remove_mixed_up_pointer_params.pl [new file with mode: 0755]