rosenberg: fix crash parsing different functions with the same name
authorDan Carpenter <dan.carpenter@oracle.com>
Thu, 14 Feb 2013 12:07:58 +0000 (14 15:07 +0300)
committerDan Carpenter <dan.carpenter@oracle.com>
Thu, 14 Feb 2013 12:07:58 +0000 (14 15:07 +0300)
We load all the functions we are interested in into a list and we expect
to find the arguments in the right place.  But sometimes there are
functions with the same name as one we are interested in but no arguments.

Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
check_rosenberg.c

index 1c58aa4..c2f802e 100644 (file)
@@ -79,6 +79,8 @@ static void match_clear(const char *fn, struct expression *expr, void *_arg_no)
        int arg_no = PTR_INT(_arg_no);
 
        ptr = get_argument_from_call_expr(expr->args, arg_no);
+       if (!ptr)
+               return;
        if (ptr->type != EXPR_PREOP || ptr->op != '&')
                return;
        ptr = strip_expr(ptr->unop);