|
Home About Us A-Z Index Search * Contact Us Register Login Press ShopThe Open Brand -- Problem Reporting and Interpretations System |
Problem Report 1350 Details
Show help | Quick Search | Submit a Test Suite Support Request | Click here to view your privileges
This page provides all information on Problem Report 1350.
Report 1350 Actions
Problem Report Number 1350 Submitter's Classification Test Suite problem State Resolved Resolution Test Suite Deficiency (TSD) Problem Resolution ID TSD.X.0632 Raised 1970-01-01 08:00 Updated 2003-03-13 08:00 Published 1997-05-27 08:00 Product Standard Internationalised System Calls and Libraries Extended (UNIX 95) Certification Program The Open Brand certification program Test Suite VSU version 4.1.1 Test Identification base/swapcontext 1 Problem Summary TSD4U.00185 This test may fail because the stack allocated is not large enough for the calls being made. Problem Text
The problem is that the stack being allocated is not large enough to
accommodate all of the stack space needed by the functions that are
being called. (The value of MINSIGSTKSZ is 512). In particular, the
program exceeds its stack space when test_func() calls tet_infoline(),
which calls sprintf(), which in turn calls _idoprnt(). The _idoprnt()
routine alone uses close to 512 bytes of stack space; it's within this
routine that the stack gets overrun; this eventually causes a SIGSEGV
when getenv() tries to access the data pointed at by the "environ"
variable,
which has been overwritten due to the stack overrun.
XSH p. 554, sigaltstack() states:
The value SIGSTKSZ is a system default specifying the number of bytes
that would be used to cover the usual case when manually allocating an
alternate stack area. The value MINSIGSTKSZ is defined to be the minimum
stack size for a signal handler. In computing an alternate stack size, a
program should add that amount to its stack requirements to allow for the
system implementation overhead. The constants SS_ONSTACK, SS_DISABLE,
SIGSTKSZ, and MINSIGSTKSZ are defined in <signal.h>.
Thus the test suite is responsible for allocating a large enough stack
for the calls it will be making. We temporarily modified the code to
allocate MINSIGSTKSZ*4 bytes and to set ucp.uc_stack.ss_size =
MINSIGSTKSZ*4;
this allowed the test to run successfully.Test Output
70||"SPEC1170TESTSUITE AREA swapcontext 0"
110|0 /tset/CAPIbase/fswapconte/fswapconte1 17:38:09|Build Start,
scenario ref 3-1
100|0| c89 -D _XOPEN_SOURCE -D _XOPEN_SOURCE_EXTENDED=1 -I
/usr/local/Rel1.10/inc/posix_c -I /usr/local/Rel1.10/CAPI/SRC/INC -o
fswapconte1 dswapconte1.c /usr/local/Rel1.10/CAPI/SRC/LIB/capi_com.a
/usr/local/Rel1.10/lib/posix_c/tcm.o
/usr/local/Rel1.10/lib/posix_c/libapi.a -l c
130|0 0 17:38:20|Build End
10|1 /tset/CAPIbase/fswapconte/fswapconte1 17:38:20|TC Start, scenario
ref 3-1, ICs {1}
15|1 1.10 1|TCM Start
400|1 1 1 17:38:20|IC Start
200|1 1 17:38:20|TP Start
520|1 1 26597 1 1|SPEC1170TESTSUITE CASE 1
520|1 1 26597 1 2|A successful call to int swapcontext(ucontext_t *oucp,
520|1 1 26597 1 3|const ucontext_t *ucp) shall save the current context
520|1 1 26597 1 4|in the context structure pointed to by oucp, set the
520|1 1 26597 1 5|context to the context structure pointed to by ucp,
520|1 1 26597 1 6|and return 0.
520|1 1 26598 1 1|PREP: Generate a new context
520|1 1 26598 1 2|INFO: Executing in original context
520|1 1 26598 1 3|TEST: Context set to new context
520|1 1 26598 1 4|INFO: Entered function passed to makecontext()
520|1 1 26598 1 5|INFO: Exiting function passed to makecontext()
520|1 1 26598 1 6|TEST: swapcontext returns 0
520|1 1 26598 1 7|TEST: Function passed to makecontext() invoked
520|1 1 26597 2 1|ERROR: TEST TERMINATED DUE TO SIGSEGV SIGNAL (11)
220|1 1 1 17:38:20|FAIL
410|1 1 1 17:38:20|IC End
80|1 0 17:38:21|TC End
300|2 /tset/CAPIbase/fswapconte/fswapconte1 17:38:21|Clean Start,
scenario
ref 3-1
320|2 0 17:38:21|Clean End
900|17:38:21|TCC End
Review Information
Review Type TSMA Review Start Date null Completed null Status Complete Review Recommendation No Resolution Given Review Response
We agree this is a test suite deficiency in the test
suite version(s) listed.
Review Type SA Review Start Date null Completed null Status Complete Review Resolution Test Suite Deficiency (TSD) Review Conclusion
This is an agreed Test Suite Deficiency.
Problem Reporting System Options:
- View Report 1350
- List All PRs
- Search Reports
- Email the System Administrator
- View the The Open Brand Interpretations Database User Manual
Contact the Certification Authority