|
Home About Us A-Z Index Search * Contact Us Register Login Press ShopThe Open Brand -- Problem Reporting and Interpretations System |
Problem Report 1677 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 1677.
Report 1677 Actions
Problem Report Number 1677 Submitter's Classification Test Suite problem State Resolved Resolution Rejected (REJ) Problem Resolution ID REJ.X.0481 Raised 2002-01-29 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.1.2 Test Identification CAPI.os/files/mknod 27 Problem Summary PG4U.00184 The tests fail because of an issue related to tempnam() and the permissions on the NOSPC_DEV; a work-around is to change the permissions. Problem Text
The problem with the assertion above is the check in fill_me_up:
if (strcmp(tmpdir, path))
{
tet_infoline("ERROR: tempnam() did not use the mounted filesystem");
sprintf(ebuf, " Requested directory: %s, used directory: %s", path, tmpdir);
tet_infoline(ebuf);
tet_result(TET_UNRESOLVED);
return (-1);
}
The definition of tempnam() says:
"The tempnam() function allows the user to control the choice of a directory.
The DIR argument points to the name of the directory in which the file is to
be created. If dir is a null pointer or points to a string which is not the
name for an appropriate directory, the path prefix defined as {P_tmpdir} in the
<stdio.h> header is used. If that directort is not accessible, an
implementation-dependant directory may be used."
The standard never defines "appropriate directory". Our implementation has
specified that a directory is not appropriate if access() indicates the calling
program does not have permissions to access the directory specified.
The definition of access() says:
"The access() function checks the file named by pathname pointed to by the
PATH argument for accessibility to the bit pattern contained in AMODE,
using the real user ID inplace of the effective user ID and the real group
ID in place of the effective group ID."
For the assertions listed above, they are setuid but since the test is
being run by vsx0, access() indicates the program cannot access DIR.Test Output
************************************************************************
/tset/CAPI.os/files/mknod/T.mknod 27 Unresolved
Test Description:
Base Required Deviance
ENOSPC in errno and return -1 on a call to int mknod(const char *path,
mode_t mode, dev_t dev) when the directory which would contain the new
file specified by path cannot be extended.
Test Information:
PREP: Mount file-system read-write on ../tmp/mpoint
PREP: Fill up the file system
PREP: Make a directory
PREP: Filling up a single large file till the
filesystem is full
PREP: Fill up the directory entry spaces and filesystem
fragments
ERROR: tempnam() did not use the mounted filesystem
Requested directory: ../tmp/mpoint/enospc_dir, used directory:
/var/tmp
************************************************************************
************************************************************************
/tset/CAPI.os/files/symlink/T.symlink 17 Unresolved
Test Description:
Base Required Deviance
ENOSPC in errno and return -1 on a call to int symlink(const char
*path1, const char *path2) when the directory in which the entry for
the new symbolic link is being placed cannot be extended because no
space is left on the file system containing the directory.
Test Information:
PREP: Create a regular file.
PREP: Mount file-system read-write on ../tmp/mpoint
PREP: Fill up the file system
PREP: Make a directory
PREP: Filling up a single large file till the
filesystem is full
PREP: Fill up the directory entry spaces and filesystem
fragments
ERROR: tempnam() did not use the mounted filesystem
Requested directory: ../tmp/mpoint/enospc_dir, used directory:
/var/tmp
************************************************************************
************************************************************************
/tset/CAPI.os/files/symlink/T.symlink 18 Unresolved
Test Description:
Base Required Deviance
ENOSPC in errno and return -1 on a call to int symlink(const char
*path1, const char *path2) when the new symbolic link cannot be
created because no space is left on the file system to contain the
link.
Test Information:
PREP: Create a regular file.
PREP: Mount file-system read-write on ../tmp/mpoint
PREP: Fill up the file system
PREP: Make a directory
PREP: Filling up a single large file till the
filesystem is full
PREP: Fill up the directory entry spaces and filesystem
fragments
ERROR: tempnam() did not use the mounted filesystem
Requested directory: ../tmp/mpoint/enospc_dir, used directory:
/var/tmp
************************************************************************Review Information
Review Type TSMA Review Start Date null Completed null Status Complete Review Recommendation No Resolution Given Review Response
The use of tempnam() in these tests is inappropriate, and they should
be changed to avoid it.
However, there is a simple work-around which will prevent the test
failures occurring on this system. If the permissions on the NOSPC_DEV
file system are changed so that user vsx0 has the relevant access to
the enospc_dir directory, then tempnam() will use it instead of P_tmpdir.
Since enospc_dir is created with 777 permissions, it must be the
permissions on the root directory of the NOSPC_DEV file system that
are preventing access by vsx0. Mounting the file system and executing
"chmod a+rx" for the mount point (then unmounting) should cure the
problem.
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 1677
- List All PRs
- Search Reports
- Email the System Administrator
- View the The Open Brand Interpretations Database User Manual
Contact the Certification Authority