1*1f5207b7SJohn Levon #include <stdio.h>
2*1f5207b7SJohn Levon 
3*1f5207b7SJohn Levon int *add_inode();
4*1f5207b7SJohn Levon int IS_ERR(void *);
5*1f5207b7SJohn Levon 
main(void)6*1f5207b7SJohn Levon int main(void)
7*1f5207b7SJohn Levon {
8*1f5207b7SJohn Levon 	int *p;
9*1f5207b7SJohn Levon 
10*1f5207b7SJohn Levon 	p = add_inode();
11*1f5207b7SJohn Levon 	if (!IS_ERR(p)) {
12*1f5207b7SJohn Levon 		*p = 1;
13*1f5207b7SJohn Levon 	}
14*1f5207b7SJohn Levon 	*p = 1;
15*1f5207b7SJohn Levon 
16*1f5207b7SJohn Levon 	return 0;
17*1f5207b7SJohn Levon }
18*1f5207b7SJohn Levon /*
19*1f5207b7SJohn Levon  * check-name: dereferencing ERR_PTR bugs
20*1f5207b7SJohn Levon  * check-command: smatch -p=kernel sm_err_ptr.c
21*1f5207b7SJohn Levon  *
22*1f5207b7SJohn Levon  * check-output-start
23*1f5207b7SJohn Levon sm_err_ptr.c:14 main() error: 'p' dereferencing possible ERR_PTR()
24*1f5207b7SJohn Levon  * check-output-end
25*1f5207b7SJohn Levon  */
26