OpenSolaris

Printable Version Enter a New Search
Bug ID 6561218
Synopsis Invalid stack pointer in Brandz signal context
State 10-Fix Delivered (Fix available in build)
Category:Subcategory kernel:brandz
Keywords s10u4beta
Responsible Engineer William Kucharski
Reported Against s10u4_05
Duplicate Of
Introduced In solaris_nevada
Commit to Fix snv_67
Fixed In snv_67
Release Fixed solaris_nevada(snv_67)
Related Bugs
Submit Date 23-May-2007
Last Update Date 20-June-2007
Description
The stack pointer passed to signal handlers running in CentOS under Brandz
is not valid.  In the attached example a thread is interrupted while looping,
yet the stack pointer seen in the signal context is zero. 
STEPS TO DUPLICATE
-------------------------
Compile the attached code under CentOS 3.8 running in Brandz on Solaris.
cc -g -D_GNU_SOURCE -DREENTRANT -o tst-sigesp tst-sigesp.c -lpthread
Run the program: 
./tst-sigesp
Note that the stack pointer, ESP, reported is zero.
EXPECTED VS ACTUAL RESULTS
-------------------------------------
Expect: the stack pointer saved in the signal context should be the
stack point at the point that signal was received.
Actual: a stack pointer of zero is observed.
ERROR MESSAGES
---------------------
(No Answer)
SOURCE CODE
------------------
(No Answer)
SYSTEM INFORMATION
--------------------------
Hardware Platforms (AMD64-1, Non-Sun, ASUS K8V Delux, AMD Athlon., x64, 1GB, 100GB or more)
Operating Platforms (Sol1, Solaris 10 7/07, Solaris, JDS 3 Sun Java Desktop System Release 3, English)
SUBMITTER PROVIDED WORKAROUND
--------------------------
None.
Work Around
Linux applications in need of the value of the stack pointer at the
time a signal was received should examine REG_UESP instead of REG_ESP.
Comments
N/A