• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  *  Author:  Jeff Moyer
3  *
4  *  Description: Pass a non-writable context pointer to io_setup to see if
5  *  the kernel deals with it correctly.  In the past, the reference counting
6  *  in this particular error path was off and this operation would cause an
7  *  oops.
8  *
9  *  This is a destructive test.
10  */
11 #include <stdio.h>
12 #include <stdlib.h>
13 #include <sys/mman.h>
14 #include <libgen.h>
15 #include <libaio.h>
16 
17 int
main(int argc,char ** argv)18 main(int __attribute__((unused)) argc, char **argv)
19 {
20 	void *addr;
21 
22 	addr = mmap(NULL, 4096, PROT_READ, MAP_SHARED|MAP_ANONYMOUS, 0, 0);
23 	if (!addr) {
24 		perror("mmap");
25 		exit(1);
26 	}
27 	io_setup(1, addr /* un-writable pointer */);
28 
29 	printf("%s: Success!\n", basename(argv[0]));
30 	return 0;
31 }
32