Check-in [6546477ed5]
Overview
Comment:Updated to print UID of user invoking keyctl()
Downloads: Tarball | ZIP archive
Timelines: family | ancestors | descendants | both | trunk | 1
Files: files | file ages | folders
SHA1: 6546477ed59c71f6a0f47e3b10f25f373a7c92ea
User & Date: rkeene on 2016-01-20 15:26:56.803
Other Links: manifest | tags
Context
2016-01-20
15:48
Updated with better search for sys_call_table address in files Leaf check-in: a0ad8fcf5e user: rkeene tags: trunk
15:26
Updated to print UID of user invoking keyctl() check-in: 6546477ed5 user: rkeene tags: trunk, 1
15:26
Added extra clean operations check-in: 3c8ede0b8b user: rkeene tags: trunk
Changes
26
27
28
29
30
31
32

33
34
35
36
37
38
39
40
41
42
43
44
45
46
47



48
49
50
51
52
53
54

#include <linux/init.h>

#include <linux/module.h>
#include <linux/kernel.h>
#include <linux/syscalls.h>
#include <linux/sched.h>


MODULE_LICENSE("GPL");
MODULE_AUTHOR("Alessandro Ghedini and Mike Perry");
MODULE_DESCRIPTION("disable the keyctl() system call");

/* ia32 entry */
#define __NR_compat_keyctl 311

static asmlinkage long (*o_ptr)(int cmd, ...);
#if defined(__enable_32bits_support)
static asmlinkage long (*o_ptr32)(int cmd, ...);
#endif

asmlinkage long nokeyctl(int cmd, ...) {
	printk("[nokeyctl] keyctl() invoked by process %i\n", current->pid);




	return(-EPERM);
}

static void sys_call_table_make_rw(void **addr);
static void sys_call_table_make_ro(void **addr);








>














|
>
>
>







26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58

#include <linux/init.h>

#include <linux/module.h>
#include <linux/kernel.h>
#include <linux/syscalls.h>
#include <linux/sched.h>
#include <linux/cred.h>

MODULE_LICENSE("GPL");
MODULE_AUTHOR("Alessandro Ghedini and Mike Perry");
MODULE_DESCRIPTION("disable the keyctl() system call");

/* ia32 entry */
#define __NR_compat_keyctl 311

static asmlinkage long (*o_ptr)(int cmd, ...);
#if defined(__enable_32bits_support)
static asmlinkage long (*o_ptr32)(int cmd, ...);
#endif

asmlinkage long nokeyctl(int cmd, ...) {
	printk("[nokeyctl] keyctl() invoked by process %llu, user id = %llu\n", \
		(unsigned long long) current->pid, \
		(unsigned long long) (get_current_user()->uid.val)
	);

	return(-EPERM);
}

static void sys_call_table_make_rw(void **addr);
static void sys_call_table_make_ro(void **addr);