Red Hat Bugzilla – Bug 181938
SIGBUS reading memory area marked as readable
Last modified: 2007-11-30 17:07:09 EST
Initially found during kernel work (reading pages where access_ok indicates that
memory is readable but copy_from_user causes a bus error)... we're able to
replicate the problem even in user space; a process getting its list of pages
and reading a few bytes from each page in a readable range can hit a SIGBUS
Release: RHEL3 -- last tested on U6 (also found on U5)
compile and run attached program (cc -o test ./test.c; ./test.c) -- must be
dynamically linked; it opens its maps and reads the list of mapped regions; for
each region that is marked readable it will print out the address of each page
in that region and print the first 8 bytes of that page.
[root@dhcp228 root]# ./test
0000000000400000-0000000000401000 r-xp 0000000000000000 03:02 295281 /root/test
0000000000500000-0000000000501000 rw-p 0000000000000000 03:02 295281
0000002a95556000-0000002a9566b000 r-xp 0000000000000000 03:02 557078
(always dies in /lib64/ld-2.3.2.so)
Application should not die; should go through all maps and complete successfully.
Seems to be same problem reported at
https://www.redhat.com/archives/amd64-list/2005-June/msg00000.html (and verified
that we also see that siginfo contains BUS_ADRERR)
Created attachment 124832 [details]
Program that gets a bus error where it shouldn't
User email@example.com's account has been closed
This bug is filed against RHEL 3, which is in maintenance phase.
During the maintenance phase, only security errata and select mission
critical bug fixes will be released for enterprise products. Since
this bug does not meet that criteria, it is now being closed.
For more information of the RHEL errata support policy, please visit:
If you feel this bug is indeed mission critical, please contact your
support representative. You may be asked to provide detailed
information on how this bug is affecting you.