This is the mail archive of the
systemtap@sourceware.org
mailing list for the systemtap project.
[Bug dyninst/15624] New: stapdyn deref failure with high pointers on i686
- From: "jistone at redhat dot com" <sourceware-bugzilla at sourceware dot org>
- To: systemtap at sourceware dot org
- Date: Thu, 13 Jun 2013 21:43:52 +0000
- Subject: [Bug dyninst/15624] New: stapdyn deref failure with high pointers on i686
- Auto-submitted: auto-generated
http://sourceware.org/bugzilla/show_bug.cgi?id=15624
Bug ID: 15624
Summary: stapdyn deref failure with high pointers on i686
Product: systemtap
Version: unspecified
Status: NEW
Severity: normal
Priority: P2
Component: dyninst
Assignee: systemtap at sourceware dot org
Reporter: jistone at redhat dot com
The tests pretty-bits.exp and pretty-char.exp are failing on --runtime=dyninst.
I tracked this down to an EINVAL from pread() in our __copy_from_user(). Since
these tests are reading from the module's own static locals, the pointer used
as a pread offset can be fairly large, e.g. 0xb771e10c. Notice the most
significant bit is set, and off_t is a signed type, so this is effectively
negative. It appears that pread() will not let the offset wrap around, so it's
EINVAL.
Preliminary testing with FILE_OFFSET_BITS 64 looks better. Conceivably, this
could still fail if a 64-bit machine had userspace addresses > INT64_MAX. But
at least on x86_64, TASK_SIZE_MAX is just 2^47.
--
You are receiving this mail because:
You are the assignee for the bug.