kptr_restrict_test

This commit is contained in:
Cheng Jian
2021-04-11 17:28:26 +08:00
parent 92e7728aad
commit f856c5595a
3 changed files with 126 additions and 0 deletions
@@ -0,0 +1,81 @@
# ------------------------------------------------------------------------------
#
# Makefile for the LDD-LinuxDeviceDrivers.
#
# Author: gatieme
# Create: 2016-07-29 15:50:46
# Last modified: 2016-07-29 16:10:29
# Description:
# This program is loaded as a kernel(v2.6.18 or later) module.
# Use "make install" to load it into kernel.
# Use "make remove" to remove the module out of kernel.
#
# ------------------------------------------------------------------------------
ROOT=..
#PLATFORM=$(shell $(ROOT)/systype.sh)
#include $(ROOT)/Make.defines.$(PLATFORM)
# my driver description
DRIVER_VERSION := "1.0.0"
DRIVER_AUTHOR := "Gatieme @ AderStep Inc..."
DRIVER_DESC := "Linux input module for Elo MultiTouch(MT) devices"
DRIVER_LICENSE := "Dual BSD/GPL"
MODULE_NAME := kptr_restrict_test
EXTRA_CFLAGS += -g
ifneq ($(KERNELRELEASE),)
obj-m := $(MODULE_NAME).o
else
KERNELDIR ?= /lib/modules/$(shell uname -r)/build
PWD := $(shell pwd)
modules:
make -C $(KERNELDIR) M=$(PWD) modules
modules_install:
make -C $(KERNELDIR) M=$(PWD) modules_install
insmod:
sudo insmod $(MODULE_NAME).ko
reinsmod:
sudo rmmod $(MODULE_NAME)
sudo insmod $(MODULE_NAME).ko
github:
cd $(ROOT) && make github
rmmod:
sudo rmmod $(MODULE_NAME)
test :
cat /sys/kernel/debug/mydebug/a
cat /sys/kernel/debug/mydebug/b
cat /sys/kernel/debug/mydebug/subdir/c
clean:
make -C $(KERNELDIR) M=$(PWD) clean
rm -f modules.order Module.symvers Module.markers
.PHNOY:
modules modules_install clean
endif
@@ -0,0 +1,31 @@
#include <linux/init.h>
#include <linux/module.h>
#include <linux/proc_fs.h>
#include <linux/seq_file.h>
#include <linux/percpu.h>
#include <linux/sched.h>
#include <linux/version.h>
#define SIZE 10
int array[SIZE];
int *p_arr = array;
static int __init exam_seq_init(void)
{
pr_info("%%p = %p, %%pK = %pK, %%px = %px\n", p_arr, p_arr, p_arr);
pr_info("%%p = %p, %%pK = %pK, %%px = %px\n", &p_arr, &p_arr, &p_arr);
return 0;
}
static void __exit exam_seq_exit(void)
{
}
module_init(exam_seq_init);
module_exit(exam_seq_exit);
MODULE_LICENSE("GPL");
@@ -0,0 +1,14 @@
#!/bin/bash
dmesg -c
for kptr in `seq 0 2`
do
echo $kptr > /proc/sys/kernel/kptr_restrict
KPTR=`cat /proc/sys/kernel/kptr_restrict`
echo "/proc/sys/kernel/kptr_restrict: $KPTR"
insmod ./kptr_restrict_test.ko
dmesg -c
rmmod ./kptr_restrict_test.ko
done