|
Home About Us A-Z Index Search * Contact Us Register Login Press ShopThe Open Brand -- Problem Reporting and Interpretations System |
Problem Report 1112 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 1112.
Report 1112 Actions
Problem Report Number 1112 Submitter's Classification Test Suite problem State Resolved Resolution Rejected (REJ) Problem Resolution ID REJ.X.0314 Raised 1970-01-01 08:00 Updated 2003-03-13 08:00 Published null Product Standard Internationalised System Calls and Libraries Extended V2 (UNIX 98) Certification Program The Open Brand certification program Test Suite VSU version 5.0.3 Test Identification CAPIbase/writev 76 77 Problem Summary PG4U.00159 Writev should raise SIGXFSZ when an LFS EFBIG error is detected. Problem Text
These tests do the following:
1) in an executable with a 32 bit off_t, create a file
2) exec an 64 bit off_t executable and pass the file descriptor
created above.
3) in the 64 bit off_t executable, lseek to the 32 bit maximum offset.
4) in the 64 bit off_t executable, attempt to write 4 bytes using
writev(). This write should write past the maximum 32 bit offset.
writev() should return -1 and errno corresponding to EFBIG,
However, since the write causes the 32 bit file size limit to be exceeded,
our implementation sends a SIGXFSZ(signal 25). Since t76lrgoff* and t77lrgoff*
do not have a signal handler to catch this, they abort instead, returning back
to the small off_t program. Adding a signal handler to catch SIGXFSZ in the
large off_t program, shows that our writev returns -1 and EFBIG as required
by the XPG spec.Test Output
TEST CASE: writev
TEST PURPOSE #76
If the implementation allows creation of a file
description with an offset maximum less than the
largest size it supports for an off_t:
EFBIG in errno and return -1 on a call to ssize_t
writev(int fildes, const struct iovec *iov, int
iovcnt) when the file is a regular file, nbyte is
greater than zero, and the starting position is equal
to the offset maximum established in the open file
description associated with fildes.
PREP: Check for existence of programming environments
PREP: Obtain off_t size in XBS5_ILP32_OFF32 environment
PREP: Obtain off_t size in XBS5_ILP32_OFFBIG environment
INFO: Execution environment for XBS5_LP64_OFF64 not supported
INFO: Execution environment for XBS5_LPBIG_OFFBIG not supported
TEST: Execute a program compiled in XBS5_ILP32_OFF32(32-bit off_t)
environment that:
opens a regular file
execs a program compiled in XBS5_ILP32_OFFBIG(64-bit off_t) environment,
passing it the open file descriptor
this program:
sets the offset equal to the value that can be
represented in a 32-bit off_t,
verifies writev returns -1 and sets errno to EFBIG
ERROR: In 32-bit program: ERROR: Child terminated due to signal 25
76 UNRESOLVED
TEST PURPOSE #77
If the implementation allows creation of a file
description with an offset maximum less than the
largest size it supports for an off_t:
EFBIG in errno and return -1 on a call to ssize_t
writev(int fildes, const struct iovec *iov, int
iovcnt) when the file is a regular file, nbyte is
greater than zero, and the starting position is
greater than the offset maximum established in the
open file description associated with fildes.
PREP: Check for existence of programming environments
PREP: Obtain off_t size in XBS5_ILP32_OFF32 environment
PREP: Obtain off_t size in XBS5_ILP32_OFFBIG environment
INFO: Execution environment for XBS5_LP64_OFF64 not supported
INFO: Execution environment for XBS5_LPBIG_OFFBIG not supported
TEST: Execute a program compiled in XBS5_ILP32_OFF32(32-bit off_t)
environment that:
opens a regular file
execs a program compiled in XBS5_ILP32_OFFBIG(64-bit off_t) environment,
passing it the open file descriptor
this program:
sets the offset to a value greater than what can be
represented in 32-bit off_t,
verifies writev returns -1 and sets errno to EFBIG
ERROR: In 32-bit program: ERROR: Child terminated due to signal 25
77 UNRESOLVEDReview Information
Review Type TSMA Review Start Date null Completed null Status Complete Review Recommendation No Resolution Given Review Response
We recommend this request be refused.
The SUS specifies conditions under which writev() raises SIGXFSZ but
this is not one of them. Though implementations are free to add
extensions beyond the SUS' requirements these must not impact the
operation of a conforming application. This extension does have such
an application portability impact, preventing for instance the execution
of these tests which we believe to be conforming and correct as written.
Review Type SA Review Start Date null Completed null Status Complete Review Resolution Rejected (REJ) Review Conclusion
This request is refused.
Problem Reporting System Options:
- View Report 1112
- List All PRs
- Search Reports
- Email the System Administrator
- View the The Open Brand Interpretations Database User Manual
Contact the Certification Authority