git://git.onelab.eu
/
procprotect.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Possible race condition and consequent crash
[procprotect.git]
/
procprotect.c
diff --git
a/procprotect.c
b/procprotect.c
index
2e8cd13
..
950be09
100644
(file)
--- a/
procprotect.c
+++ b/
procprotect.c
@@
-157,8
+157,12
@@
static int lookup_slow_entry(struct kretprobe_instance *ri, struct pt_regs *regs
static int lookup_slow_ret(struct kretprobe_instance *ri, struct pt_regs *regs)
{
static int lookup_slow_ret(struct kretprobe_instance *ri, struct pt_regs *regs)
{
- struct procprotect_ctx *ctx = (struct procprotect_ctx *) ri->data;
- int ret = regs->ax;
+ struct procprotect_ctx *ctx;
+ int ret;
+
+ if (!ri) {/* Race condition?*/ return 0;}
+ ctx = (struct procprotect_ctx *) ri->data;
+ ret = regs->ax;
if (ret==0) {
/* The kernel is going to honor the request. Here's where we step in */
if (ret==0) {
/* The kernel is going to honor the request. Here's where we step in */