|
Home About Us A-Z Index Search * Contact Us Register Login Press ShopThe Open Brand -- Problem Reporting and Interpretations System |
Problem Report 1289 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 1289.
Report 1289 Actions
Problem Report Number 1289 Submitter's Classification Test Suite problem State Resolved Resolution Test Suite Deficiency (TSD) Problem Resolution ID TSD.X.0571 Raised 1970-01-01 08:00 Updated 2003-03-13 08:00 Published 1998-07-30 08:00 Product Standard Internationalised Terminal Interfaces Certification Program The Open Brand certification program Test Suite VSU version 5.0.2 Test Identification xcurses/tparm 1 Problem Summary TSD4U.00247 This test does not accomodate 64 bit implementations. Problem Text
Here is the source code from CAPIxcurses/ftparm/[df]tparm.c:
static void test1A(void)
{
....
tet_infoline("TEST: Pass '%%c' parameter");
Test("%p1%s", (int)"Hello", 0, 0, 0, 0, "Hello");
....
}
static void
Test(char *param_string, int p1, int p2, int p3, int p4, int p5, char
*expected)
{
char *actual;
actual = (char *)tparm(param_string, p1, p2, p3, p4, p5, 0 , 0, 0,
0);
....
}
tparm() expects its second through tenth arguments to be "long". On
our 64-bit implementations "long" is a larger type than "int", so
tparm() can exhaust the stack and cause a segmentation violation if
given "int" arguments.
---
Note:
A second deficiency becomes evident when this one is patched out. In:
tet_infoline("TEST: Pass '%%~' parameter");
Test("%p1%~%x", 0x0000f0f0, 0, 0, 0, 0, "ffff0f0f");
The test is assuming that 0x0000f0f0 is the one's complement of
0xffff0f0f. This will fail when a "long" is larger than 32 bits:
520|1 1 1659 2 39|TEST: Pass '%%~' parameter
520|1 1 1659 2 40|ERROR: tparm('%p1%~%x', 61680, 0, 0, 0, 0) Produced 'fffffffff
fff0f0f' not 'ffff0f0f'
220|1 1 1 10:57:33|FAILTest Output
0|1351 /tset/CAPIxcurses/ftparm/ftparm1 23:29:49|TC Start, scenario ref
176-618
15|1351 1.10 2|TCM Start
400|1351 1 1 23:29:49|IC Start
200|1351 1 23:29:49|TP Start
520|1351 1 26885 1 1|SPEC1170TESTSUITE CASE 1
520|1351 1 26885 1 2|A successful call to char *tparm(char *str, long int
520|1351 1 26885 1 3|long int p1, long int p2, long int p3, long int p4,
520|1351 1 26885 1 4|long int p5, long int p6, long int p7, long int p8,
520|1351 1 26885 1 5|long int p9) shall retrieve the capability associated
520|1351 1 26885 1 6|with the string pointed to by str, replace variables
520|1351 1 26885 1 7|in the capability with the specified parameters, and
520|1351 1 26885 1 8|return a pointer to the string with the parameters
520|1351 1 26885 1 9|applied.
520|1351 1 26886 1 1|DEBUG: Entering capi_xcurses/vt.c:avsinit_curses()
520|1351 1 26886 1 2|DEBUG: Entering capi_xcurses/vt.c:basic_curses_init()
520|1351 1 26886 1 3|PREP: Set test locale: xcurses
520|1351 1 26886 1 4|DEBUG: Entering capi_xcurses/vt.c:avsstart_term()
520|1351 1 26886 1 5|PREP: Set environment variables and open terminal connectio
n
520|1351 1 26886 1 6|DEBUG: Entering capi_curses/curs_prep.c(curs_prep.pty.c):cu
rses_prep()
520|1351 1 26886 1 7|DEBUG: Entering capi_curses/curs_prep.c(curs_prep.pty.c):op
en_pty()
520|1351 1 26886 1 8|DEBUG: Exiting capi_curses/curs_prep.c(curs_prep.pty.c):ope
n_pty()
520|1351 1 26886 1 9|DEBUG: Entering capi_curses/curs_prep.c(curs_prep.pty.c):l_
tty_init()
520|1351 1 26886 1 10|DEBUG: Exiting capi_curses/curs_prep.c(curs_prep.pty.c):l_
tty_init()
520|1351 1 26886 1 11|DEBUG: Exiting capi_curses/curs_prep.c(curs_prep.pty.c):cu
rses_prep()
520|1351 1 26886 2 1|DEBUG: Exiting capi_xcurses/vt.c:avsstart_term()
520|1351 1 26886 2 2|DEBUG: Entering capi_xcurses/vt.c:avsstart_curses()
520|1351 1 26886 2 3|PREP: Call newterm
520|1351 1 26886 2 4|DEBUG: Exiting capi_xcurses/vt.c:avsstart_curses()
520|1351 1 26886 2 5|DEBUG: Exiting capi_xcurses/vt.c:basic_curses_init()
520|1351 1 26886 2 6|PREP: Initialize color pairs
520|1351 1 26886 2 7|DEBUG: Exiting capi_xcurses/vt.c:avsinit_curses()
520|1351 1 26886 2 8|TEST: Pass '%%' parameter
520|1351 1 26886 2 9|TEST: Pass '%%c' parameter
520|1351 1 26886 2 10|TEST: Pass '%%s' parameter
520|1351 1 26885 2 1|ERROR: TEST TERMINATED DUE TO SIGSEGV SIGNAL (11)
220|1351 1 1 23:29:49|FAIL
410|1351 1 1 23:29:49|IC EndReview 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 releases 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 1289
- List All PRs
- Search Reports
- Email the System Administrator
- View the The Open Brand Interpretations Database User Manual
Contact the Certification Authority