|
Home About Us A-Z Index Search * Contact Us Register Login Press ShopThe Open Brand -- Problem Reporting and Interpretations System |
Problem Report 0528 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 0528.
Report 0528 Actions
Problem Report Number 0528 Submitter's Classification Test Suite problem State Resolved Resolution Rejected (REJ) Problem Resolution ID REJ.X.0147 Raised 2001-10-02 08:00 Updated 2003-03-13 08:00 Published null Product Standard Network File System Certification Program The Open Brand certification program Test Suite VSX4+XNFS version 4.4.5 Test Identification XOPEN.os/streamio/tempnam 4,5,6,7 Problem Summary PG4R.148 According to the release notes for VSX+NFS 4.4.5, the following is stated "... however please note that although the XNFS tests are aligned with the current XNFS specification(version 3W), they provid... Problem Text
According to the release notes for VSX+NFS 4.4.5, the following is stated
"... however please note that although the XNFS tests are aligned with the
current XNFS specification(version 3W), they provide coverage of XSH3 interfaces
in the API tests, and of NFSV2 in the protocol tests."
Our implementation is NFS V2 based and the above tests fail because of
differences between the V2 and V3 specs in this area. tempnam() is usually
coded to use access() to determine the permissions of the directory. On V3
there is an rpc access call defined for use across the mounted Filesystems.
But on V2 the access check is done locally. The test is running as SUID and
as such there are no unaccessable directories so tempnam() will not return
a pathname starting with P_tmpdir.Test Output
************************************************************************
/tset/XOPEN.os/streamio/tempnam/T.tempnam 4 Failed
Test Description:
For the XNFS specification:
When the dir argument to tempnam() refers to a directory on a
remote file system and access to the directory is denied after the
process's effective user ID has been subject to the server's user
ID mapping process, then tempnam() returns a pointer to a file
name whose path prefix is equal to the directory specified by
{P_tmpdir}.
Test requirements: Test cases where the server both maps and does
not map the process's effective user ID.
For the XSH specification:
If dir is not the name of an accessible directory then the path
name specified by {P_tmpdir} is added to the filename created by
tempnam().
Test Strategy:
WHEN testing the XNFS specification:
PARENT process will
CREATE [child process|process pair]
CHILD process will
CHANGE the root directory to be on the remote file system
CREATE the directory pointed to by P_tmpdir
CREATE directory using crdir() - setting mode to 0
OBTAIN a suitable name for a temporary file using tempnam()
VERIFY that when the uid is mapped, that path name contains
directory as specified by P_tmpdir
CHANGE effective uid to real uid using setuid()
OBTAIN a suitable name for a temporary file using tempnam()
VERIFY that when the uid is not mapped, that path name contains
directory as specified by P_tmpdir
WHEN testing the XSH specification:
CREATE directory using crdir()
REMOVE directory using rmdir()
OBTAIN a suitable name for a temporary file using tempnam()
VERIFY that path name contains directory as specified by P_tmpdir
Test Information:
tempnam(dir, NULL) when dir was not accessable, did not return a string
starting with P_tmpdir/
************************************************************************
************************************************************************
/tset/XOPEN.os/streamio/tempnam/T.tempnam 5 Failed
Test Description:
For the XNFS specification:
When {P_tmpdir} refers to a directory on a remote filesystem, and
the dir argument to tempnam() is a NULL pointer and access to the
directory specified by {P_tmpdir} is denied after the process's
effective user ID has been subject to the server's user ID mapping
process, then tempnam() returns a pointer to a file name whose
path prefix refers to an implementation-defined directory name.
Test requirements: Test cases where the server both maps and does
not map the process's effective user ID.
For the XSH specification:
If dir is a NULL pointer and the path name specified by {P_tmpdir}
is not accessible then an implementation defined directory is
added to the filename created by tempnam().
Test Strategy:
PARENT process will
CREATE [child process|process pair]
CHILD process will
CREATE test program using execl()
CREATE temporary directory and make it the current working
directory using chdir()
REQUEST/VERIFY the NEWROOT and CHOWN privileges for the current
process using setprv() - vport
WHEN testing the XNFS specification:
Change root to the current directory using newroot() - vport
CREATE directory P_tmpdir, setting mode to 0
CALL tempnam() with a directory name of NULL
VERIFY that when uid is mapped, that returned path name is a
valid directory
CHANGE effective uid to real uid using setuid()
CALL tempnam() with a directory name of NULL
VERIFY that when uid is not mapped, that returned path name is a
valid directory
WHEN testing the XSH specification:
Change root to the current directory using newroot() - vport,
thus making P_tmpdir inaccessible
CALL tempnam() with a directory name of NULL
VERIFY that returned path name is a valid directory
Test Information:
the write permissions for the directory (/tmp) returned by tempnam()
were incorrect
tempnam() returned NULL pointer
************************************************************************
************************************************************************
/tset/XOPEN.os/streamio/tempnam/T.tempnam 6 Failed
Test Description:
For the XNFS specification:
When the dir argument to tempnam() refers to a directory on a
remote file system and access to both that directory and the
directory specified by {P_tmpdir} is denied after the process's
effective user ID has been subject to the server's user ID mapping
process, then tempnam() returns a pointer to a file name whose
path prefix refers to an implementation-defined directory name.
Test requirements: Test cases where the server both maps and does
not map the process's effective user ID.
For the XSH specification:
If dir and {P_tmpdir} are both names of inaccessible directories
then an implementation defined directory is added to the filename
created by tempnam().
Test Strategy:
PARENT process will
CREATE [child process|process pair]
CHILD process will
CREATE test program using execl()
CREATE temporary directory and make it the current working
directory using chdir()
REQUEST/VERIFY the NEWROOT and CHOWN privileges for the current
process using setprv() - vport
WHEN testing the XNFS specification:
Change root to the current directory using newroot() - vport
CREATE directory P_tmpdir, setting mode to 0
CREATE second temporary directory using crdir(), setting mode to
0
CALL tempnam() with second temporary directory name as argument
VERIFY that when uid is mapped, that returned path name is a
valid directory
CHANGE effective uid to real uid using setuid()
CALL tempnam() with second temporary directory name as argument
VERIFY that when uid is not mapped, that returned path name is a
valid directory
WHEN testing the XSH specification:
Change root to the current directory using newroot() - vport,
thus making P_tmpdir inaccessible
CREATE second temporary directory using crdir()
REMOVE second temporary directory using rmdir()
CALL tempnam() with second temporary directory name as argument
VERIFY that returned path name is a valid directory
Test Information:
the write permissions for the directory (./tempnam-d.6) returned by
tempnam() were incorrect
tempnam() returned NULL pointer
************************************************************************
************************************************************************
/tset/XOPEN.os/streamio/tempnam/T.tempnam 7 Unresolved
Test Description:
For the XNFS specification:
When the dir argument to tempnam() refers to a directory on a
remote file system and access to that directory, the directory
specified by {P_tmpdir} and an implementation-defined directory is
denied after the process's effective user ID has been subject to
the server's user ID mapping process, then tempnam() returns a
NULL pointer.
Test requirements: Test cases where the server both maps and does
not map the process's effective user ID.
For the XSH specification:
If dir and {P_tmpdir} and an implementation defined directory are
all names of inaccessible directories then NULL is returned.
Test Information:
deletion reason: could not create directory ./. - errno 17(EEXIST)
************************************************************************`Review Information
Review Type TSMA Review Start Date null Completed null Status Complete Review Recommendation No Resolution Given Review Response
The submitter claims these failures occur because the tests are
suid-root, but he has not taken into account that the user ID will be
mapped to the anonymous user ID by the server. Also, some of the
failures are for parts of the tests which are done with a normal
user ID.
The statement in the release notes regarding alignment with XNFS3W
is not relevant, as no changes were made to the tempnam() tests as
part of that alignment. The tests pass on other NFSv2 implementations.
Finally, there is nothing in the submitter's rationale to explain
the EEXIST error reported in test 7.
It is recommended that this request is refused.
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 0528
- List All PRs
- Search Reports
- Email the System Administrator
- View the The Open Brand Interpretations Database User Manual
Contact the Certification Authority