uti: Add/Modify test programs
Change-Id: I27a39d6b11af5243f93d07c31c2ef80f6727dd53
This commit is contained in:
40
test/uti/preloadlib.c
Normal file
40
test/uti/preloadlib.c
Normal file
@@ -0,0 +1,40 @@
|
||||
#include <libsyscall_intercept_hook_point.h>
|
||||
#include <syscall.h>
|
||||
#include <errno.h>
|
||||
#define __USE_GNU
|
||||
#include <dlfcn.h>
|
||||
|
||||
static int
|
||||
hook(long syscall_number,
|
||||
long arg0, long arg1,
|
||||
long arg2, long arg3,
|
||||
long arg4, long arg5,
|
||||
long *result)
|
||||
{
|
||||
if (syscall_number == SYS_getdents) {
|
||||
/*
|
||||
* Prevent the application from
|
||||
* using the getdents syscall. From
|
||||
* the point of view of the calling
|
||||
* process, it is as if the kernel
|
||||
* would return the ENOTSUP error
|
||||
* code from the syscall.
|
||||
*/
|
||||
*result = -ENOTSUP;
|
||||
return 0;
|
||||
} else {
|
||||
/*
|
||||
* Ignore any other syscalls
|
||||
* i.e.: pass them on to the kernel
|
||||
* as would normally happen.
|
||||
*/
|
||||
return 1;
|
||||
}
|
||||
}
|
||||
|
||||
static __attribute__((constructor)) void
|
||||
init(void)
|
||||
{
|
||||
// Set up the callback function
|
||||
intercept_hook_point = hook;
|
||||
}
|
||||
Reference in New Issue
Block a user