param_limit: handle struct members
PARAM_LIMIT is code like this:
int is_ok(struct foo *p)
{
if (p->bar >= 0 && p->bar < 100)
return 1;
return 0;
}
PARAM_FILTER looks like this:
void some_func(struct foo *p)
{
if (p->bar < 0 || p->bar >= 100)
p->bar = 0;
}
In the original code, if it was a parameter "$" then we limited it, but
if it was a struct member "$->bar" then we filtered it. This was wrong
and it caused some false positives. Also a struct member can be both
limited and filtered so the ordering has to be handle the limits first and
then the filtering.
Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>