HomeAbout Us A-Z IndexSearch * Contact Us Register LoginPress Shop

The Open Brand -- Problem Reporting and Interpretations System


Problem Report 2549 Details

Help Show help | Quick Search | Submit a Test Suite Support Request | Click here to view your privileges

This page provides all information on Problem Report 2549.


Report 2549 Actions


    Problem Report Number 2549
    Submitter's Classification Specification problem
    State Resolved
    Resolution Test Suite Deficiency (TSD)
    Problem Resolution ID TSD.X.1319
    Raised 2009-08-25 01:36
    Updated 2009-08-25 18:50
    Published 2009-08-25 18:50
    Product Standard Internationalised System Calls and Libraries Extended V3 (UNIX 03)
    Certification Program The Open Brand certification program
    Test Suite VSX4 version 4.6.9
    Test Identification /tset/XOPEN.os/streamio/tempnam/T.tempnam 7
    Specification Base Definitions Issue 6
    Location in Spec http://www.opengroup.org/onlinepubs/000095399/functions/tempnam.html
    Second paragraph in Descriptio
    Linked Problem Reports 0344
    Problem Summary /tset/XOPEN.os/streamio/tempnam/T.tempnam,7,FAIL
    Problem Text The tempnam(3) function may use "an implementation-defined directory" in
    certain
    circumstances. The T.tempnam,7 test in VSX assumes that only a single
    implementation
    defined directory is used for all calls to tempnam(3), however our
    implementation may try
    further directories in order to allow the operation to succeed which we
    believe to be
    permissible by the specification. From the specification:

    "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 a name for an
    appropriate directory, the
    path prefix defined as P_tmpdir in the <stdio.h> header shall be used.
    If that directory is not
    accessible, an implementation-defined directory may be used."

    This issue was resolved as PIN.X.0060 for the Network File System standard.
    Test Output ************************************************************************
    /tset/XOPEN.os/streamio/tempnam/T.tempnam 7 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 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 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
    CREATE the directory returned by tempnam() using crdir(),
    setting mode to 0
    REMOVE all privileges using unsetprv()
    VERIFY that unsetprv() returned 0
    VERIFY that when the uid is mapped, null is returned by
    tempnam()
    CALL tempnam() again with same directory argument
    CHANGE effective uid to real uid using setuid()
    VERIFY that when the uid is not mapped, null is returned by
    tempnam()
    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
    MAKE the directory returned by tempnam() inaccessible using
    chmod() to mode 0
    REMOVE all privileges using unsetprv()
    VERIFY that unsetprv() returned 0
    CALL tempnam() again with same directory argument
    VERIFY that null is returned by tempnam()

    Test Information:
    tempnam(dir, NULL) did not return NULL when dir, P_tmpdir, and the
    implementation defined directory (/tmp) were not accessible
    instead returned ./tmp.mGhrWl

    ************************************************************************

    Review Information

    Review Type SA Review
    Start Date 2009-08-25 01:36
    Last Updated 2009-08-25 18:48
    Completed 2009-08-25 18:48
    Status Complete
    Review Resolution Temporary Interpretation (TIN)
    Review Conclusion A temporary interpretation is granted. The issue raised with the
    specification owners.

    Update: following approval of Austin Group interpretation
    http://austingroupbugs.net/view.php?id=137 this is now considered to be
    a test suite deficiency.

    Problem Reporting System Options:

     

    Back   


Contact the Certification Authority