Newer
Older
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
// PUBLIC DOMAIN CODE
//
// A tiny program that disable transparent huge pages on arbitrary processes
// thpoff echo 1 : will run echo 1 with SET_THP_DISABLE true on the process
#include <stdio.h>
#include <sys/prctl.h>
#include <unistd.h>
#include <errno.h>
int main( int argc, char **argv) {
if (argc < 2) {
fprintf(stderr, "ERROR: expecting at least 1 argument!\n");
return -1;
}
prctl(PR_SET_THP_DISABLE, 1, 0, 0, 0);
char* newargv[argc];
int i;
newargv[argc-1] = NULL;
for (i=1; i<argc; i++) {
newargv[i-1] = argv[i];
}
execvp(argv[1], newargv);
if (errno == ENOENT) {
fprintf(stderr, "ERROR: file not found\n");
return -1;
} else if (errno == EACCES) {
fprintf(stderr, "ERROR: can not run file\n");
return -1;
} else if (errno > 0) {
fprintf(stderr, "ERROR: %i errno while attempting to run file\n", errno);
return -1;
}
return 0;
}