|
Home About Us A-Z Index Search * Contact Us Register Login Press ShopThe Open Brand -- Problem Reporting and Interpretations System |
Problem Report 1581 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 1581.
Report 1581 Actions
Problem Report Number 1581 Submitter's Classification Specification problem State Resolved Resolution Permanent Interpretation (PIN) Problem Resolution ID PIN.X.0138 Raised 1994-07-25 08:00 Updated 2003-03-13 08:00 Published 1995-08-18 08:00 Product Standard Internationalised System Calls and Libraries Extended (UNIX 95) Certification Program The Open Brand certification program Test Suite VSU version 4.0.2 Test Identification CAPI.os/sockets/sendmsg 38 Specification System Interfaces and Libraries Issue 4 Version 2 Location in Spec See Problem Text Problem Summary PIN4U.00004 Requirement for ENAMETOOLONG is not sensible. Problem Text
The size of sun_path has intentionally been left
undefined in <sys/un.h>. This was done for good reasons.
Different implementations have used different sizes.
For example, BSD4.3 uses a size of 108. BSD4.4 uses a size
of 104. Since most of the implementations today originated
from BSD versions, most of the major vendors today use a size
that ranges from 92 to 108. Changing the size of sun_path
can create a significant binary compatibility issue especially in
a client server environment when the client and server are
relying on a different sun_path size.
This test purpose is based on the error specification of
ENONAMETOOLONG in the sendmsg() section. Such specifcation
implicitly assumes the size of sun_path to be PATH_MAX+1. This
is too restrictive and in conflict with the spirit of the definition
of sun_path. It is also in conflict with the spirit of COSE which
is to unify existing practices.
Also the PATH_MAX value as returned by pathconf() can be a configurable
value while the size of sun_path[] has to be a static definition. Tying
the two together would require applications to recompile everytime the
value of PATH_MAX is changed.
The second part of the
error specification should have bee removed. At the minimum it
should have been classified as an optional error.Test Output
TEST CASE: sendmsg
TEST PURPOSE #38
If the implementation supports the AF_UNIX communications
domain and a connectionless socket type: ENAMETOOLONG in
errno and return -1 on a call to sendmsg(int socket,
const struct msghdr *message, int flags) when the address
family of the socket is AF_UNIX and the length of the
path exceeds PATH_MAX.
JOURNAL FILE OUTPUT:
--------------------
TEST: AF_UNIX SOCK_DGRAM
PREP: Create test sockaddr_un: path = ../tmp/unix.a20811
PREP: Server: create socket
PREP: Server: bind address ../tmp/unix.a20811 to socket
PREP: Server: notify client server is ready
PREP: Server: read and echo data
INFO: Server received signal 15
INFO: Server terminated
PREP: Wait for server to be ready
PREP: Create a socket
PREP: Obtain pathconf(_PC_PATH_MAX) for ../tmp
INFO: pathconf(_PC_PATH_MAX) for ../tmp is 1023
PREP: Make a path PC_PATH_MAX + 1 characters long
TEST: sendmsg fails with ENAMETOOLONG
ERROR: Size of sun_path (92) insufficient for size of file
name (1025)Review Information
Review Type TSMA Review Start Date null Completed null Status Complete Review Recommendation No Resolution Given Review Response
This was already the subject of Base Resolution 43, which
suggested the applicable tests be changed to give warning
result codes in this situation.
A permanent interpretation is recommended.
Review Type SA Review Start Date null Completed null Status Complete Review Resolution Permanent Interpretation (PIN) Review Conclusion
A Permanent Interpretation is granted.
Problem Reporting System Options:
- View Report 1581
- List All PRs
- Search Reports
- Email the System Administrator
- View the The Open Brand Interpretations Database User Manual
Contact the Certification Authority