|
@@ -108,8 +108,8 @@ static unsigned long get_user_stack_nth(struct pt_regs *regs, unsigned int n)
|
|
* Uprobes-specific fetch functions
|
|
* Uprobes-specific fetch functions
|
|
*/
|
|
*/
|
|
#define DEFINE_FETCH_stack(type) \
|
|
#define DEFINE_FETCH_stack(type) \
|
|
-static __kprobes void FETCH_FUNC_NAME(stack, type)(struct pt_regs *regs,\
|
|
|
|
- void *offset, void *dest) \
|
|
|
|
|
|
+static void FETCH_FUNC_NAME(stack, type)(struct pt_regs *regs, \
|
|
|
|
+ void *offset, void *dest) \
|
|
{ \
|
|
{ \
|
|
*(type *)dest = (type)get_user_stack_nth(regs, \
|
|
*(type *)dest = (type)get_user_stack_nth(regs, \
|
|
((unsigned long)offset)); \
|
|
((unsigned long)offset)); \
|
|
@@ -120,8 +120,8 @@ DEFINE_BASIC_FETCH_FUNCS(stack)
|
|
#define fetch_stack_string_size NULL
|
|
#define fetch_stack_string_size NULL
|
|
|
|
|
|
#define DEFINE_FETCH_memory(type) \
|
|
#define DEFINE_FETCH_memory(type) \
|
|
-static __kprobes void FETCH_FUNC_NAME(memory, type)(struct pt_regs *regs,\
|
|
|
|
- void *addr, void *dest) \
|
|
|
|
|
|
+static void FETCH_FUNC_NAME(memory, type)(struct pt_regs *regs, \
|
|
|
|
+ void *addr, void *dest) \
|
|
{ \
|
|
{ \
|
|
type retval; \
|
|
type retval; \
|
|
void __user *vaddr = (void __force __user *) addr; \
|
|
void __user *vaddr = (void __force __user *) addr; \
|
|
@@ -136,8 +136,8 @@ DEFINE_BASIC_FETCH_FUNCS(memory)
|
|
* Fetch a null-terminated string. Caller MUST set *(u32 *)dest with max
|
|
* Fetch a null-terminated string. Caller MUST set *(u32 *)dest with max
|
|
* length and relative data location.
|
|
* length and relative data location.
|
|
*/
|
|
*/
|
|
-static __kprobes void FETCH_FUNC_NAME(memory, string)(struct pt_regs *regs,
|
|
|
|
- void *addr, void *dest)
|
|
|
|
|
|
+static void FETCH_FUNC_NAME(memory, string)(struct pt_regs *regs,
|
|
|
|
+ void *addr, void *dest)
|
|
{
|
|
{
|
|
long ret;
|
|
long ret;
|
|
u32 rloc = *(u32 *)dest;
|
|
u32 rloc = *(u32 *)dest;
|
|
@@ -158,8 +158,8 @@ static __kprobes void FETCH_FUNC_NAME(memory, string)(struct pt_regs *regs,
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
-static __kprobes void FETCH_FUNC_NAME(memory, string_size)(struct pt_regs *regs,
|
|
|
|
- void *addr, void *dest)
|
|
|
|
|
|
+static void FETCH_FUNC_NAME(memory, string_size)(struct pt_regs *regs,
|
|
|
|
+ void *addr, void *dest)
|
|
{
|
|
{
|
|
int len;
|
|
int len;
|
|
void __user *vaddr = (void __force __user *) addr;
|
|
void __user *vaddr = (void __force __user *) addr;
|
|
@@ -184,8 +184,8 @@ static unsigned long translate_user_vaddr(void *file_offset)
|
|
}
|
|
}
|
|
|
|
|
|
#define DEFINE_FETCH_file_offset(type) \
|
|
#define DEFINE_FETCH_file_offset(type) \
|
|
-static __kprobes void FETCH_FUNC_NAME(file_offset, type)(struct pt_regs *regs,\
|
|
|
|
- void *offset, void *dest) \
|
|
|
|
|
|
+static void FETCH_FUNC_NAME(file_offset, type)(struct pt_regs *regs, \
|
|
|
|
+ void *offset, void *dest)\
|
|
{ \
|
|
{ \
|
|
void *vaddr = (void *)translate_user_vaddr(offset); \
|
|
void *vaddr = (void *)translate_user_vaddr(offset); \
|
|
\
|
|
\
|