From b285f7e5df795d9388cf6ea9080217edad8f26bb Mon Sep 17 00:00:00 2001 From: Dan Carpenter Date: Mon, 17 Jun 2013 13:58:43 +0300 Subject: [PATCH] validation, check_user_data: add a validation test Signed-off-by: Dan Carpenter --- validation/sm_user_data1.c | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) create mode 100644 validation/sm_user_data1.c diff --git a/validation/sm_user_data1.c b/validation/sm_user_data1.c new file mode 100644 index 00000000..9bc6f439 --- /dev/null +++ b/validation/sm_user_data1.c @@ -0,0 +1,30 @@ +#include "check_debug.h" + +int copy_from_user(void *dest, void *src, int size); + +struct my_struct { + int x, y; +}; + +void *pointer; + +void copy_stuff(struct my_struct *foo) +{ + copy_from_user(foo, pointer, sizeof(*foo)); +} + +void test(void) +{ + struct my_struct foo; + + copy_stuff(&foo); + __smatch_state("check_user_data", "foo.x"); +} +/* + * check-name: smatch user data #1 + * check-command: smatch -p=kernel -I.. sm_user_data1.c + * + * check-output-start +sm_user_data1.c:21 test() 'foo.x' = 'user_data' + * check-output-end + */ -- 2.11.4.GIT