diff options
author | Stan Cox <scox@redhat.com> | 2010-01-15 15:06:35 -0500 |
---|---|---|
committer | Stan Cox <scox@redhat.com> | 2010-01-15 15:06:35 -0500 |
commit | 77694f530954dfeaf76662ebaae67ac39239a24b (patch) | |
tree | fef1a3f05ba8de5086a088a3fd0acf743bdc4e9d /runtime | |
parent | 2a1c9b5db533fe7d2d2d4bac572195c490de62fb (diff) | |
download | systemtap-steved-77694f530954dfeaf76662ebaae67ac39239a24b.tar.gz systemtap-steved-77694f530954dfeaf76662ebaae67ac39239a24b.tar.xz systemtap-steved-77694f530954dfeaf76662ebaae67ac39239a24b.zip |
Relax sdt address check for attach to running process case.
* uprobes-common.c (stap_uprobe_change_plus): Relax VM_EXEC check.
Diffstat (limited to 'runtime')
-rw-r--r-- | runtime/uprobes-common.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/runtime/uprobes-common.c b/runtime/uprobes-common.c index 58e3a05f..17ed69fc 100644 --- a/runtime/uprobes-common.c +++ b/runtime/uprobes-common.c @@ -37,7 +37,7 @@ static int stap_uprobe_change_plus (struct task_struct *tsk, unsigned long reloc if (likely(sups->tfi != tfi)) continue; /* skip probes with an address beyond this map event; should not happen unless a shlib/exec got mmapped in weirdly piecemeal */ - if (likely((vm_flags & VM_EXEC) && ((sups->address >= length) || (sups->sdt_sem_offset >= length)))) continue; + if (likely((vm_flags & VM_EXEC) && sups->address >= length)) continue; /* Found a uprobe_spec for this stap_uprobe_tf. Need to lock the stap_uprobes[] array to allocate a free spot, but then we can @@ -159,7 +159,7 @@ static int stap_uprobe_change_semaphore_plus (struct task_struct *tsk, unsigned _stp_dbug(__FUNCTION__,__LINE__, "+semaphore %#x @ %#lx spec %d idx %d task %d\n", sdt_semaphore, sup->sdt_sem_address, sup->spec_index, i, tsk->tgid); } #endif - rc = put_user (sdt_semaphore, (unsigned short __user*) sup->sdt_sem_address); + rc = put_user (sdt_semaphore, (unsigned short __user*) sup->sdt_sem_address); /* XXX: need to analyze possibility of race condition */ } } |