From c788d9ef7dbcdcb12112b2487b2ac7279ffeaea9 Mon Sep 17 00:00:00 2001 From: Dan Carpenter Date: Wed, 6 Feb 2013 11:14:45 +0300 Subject: [PATCH] db: don't get print info if the function has over 10000 states It's too much information, just bail. (Also it probably means that something has gone wrong). Signed-off-by: Dan Carpenter --- smatch_db.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/smatch_db.c b/smatch_db.c index f32a463c..964669cf 100644 --- a/smatch_db.c +++ b/smatch_db.c @@ -607,6 +607,7 @@ static void call_return_state_hooks(struct expression *expr) struct state_list *slist; struct range_list *rl; char *return_ranges; + int nr_states; expr = strip_expr(expr); @@ -627,8 +628,12 @@ static void call_return_state_hooks(struct expression *expr) return_id++; slist = __get_cur_slist(); + nr_states = ptr_list_size((struct ptr_list *)__get_cur_slist()); FOR_EACH_PTR(returned_state_callbacks, cb) { - cb->callback(return_id, return_ranges, expr, slist); + if (nr_states < 10000) + cb->callback(return_id, return_ranges, expr, slist); + else + cb->callback(return_id, return_ranges, expr, NULL); } END_FOR_EACH_PTR(cb); } -- 2.11.4.GIT