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

The Open Brand -- Problem Reporting and Interpretations System


Problem Report 0305 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 0305.


Report 0305 Actions


    Problem Report Number 0305
    Submitter's Classification Specification problem
    State Resolved
    Resolution Permanent Interpretation (PIN)
    Problem Resolution ID PIN.X.0021
    Raised 1994-03-17 08:00
    Updated 2003-03-13 08:00
    Published 1994-04-26 08:00
    Product Standard Internationalised System Calls and Libraries (XPG4)
    Certification Program The Open Brand certification program
    Test Suite VSX4 version 4.3.3
    Test Identification POSIX.os/files/utime 27
    Specification System Interfaces and Headers Issue 4
    Location in Spec See Problem Text
    Problem Summary PIN4.021 If utime() is called with a non-NULL times argument, then you must be the owner of the file to change the times. In a certain test case for utime() in the VSX+XNFS V4.3.3 test suite, a process is exec...
    Problem Text
    If utime() is called with a non-NULL times argument, then you must be the
    owner of the file to change the times. In a certain test case for utime()
    in the VSX+XNFS V4.3.3 test suite, a process is executed as root on the
    client, and then attempts to issue a utime() with a non-NULL times argument
    on a file mounted from an NFS server. In our implementation, the utime()
    call succeeds, even though the mapped id is not the owner of the file. The
    test suite expects failure and errno set to EPERM.

    In our implementataion, the owner test on the client is skipped because
    the process is running as root(has the necessary permissions as far as the
    client is concerned). The client does a SETATTR to update the mtime and
    atime only. On the server, it is risky to check for file ownership on
    every SETATTR since not all, if any, attributes (other than mtime/atime)
    that can be set via SETATTR require ownership tests. If a fix is made to
    pass the test suite by adding an ownership check on the server whenever
    mtime and atime is set, then what happens if other attributes are to be
    set in addition to atime/mtime, that do not require ownership tests? Does
    the SETATTR still fail? The specification does not address this scenario.
    It is our view that this change could cause major interoperability problems,
    it adds unnecessary restrictions to SETATTR, and is a break from existing
    practice.

    The response we received from NFS_support is as follows:

    This server behaviour is necessary to support clients that set the file's
    timestamps to the current time on the client when utime() is called with a
    NULL second argument. But given that XNFS compliant clients do not do this
    (they pass a special value to indicate the timestamps should be set to
    "current server time" - see interpretation XNFS/002/931001) it is questionable
    whether this behaviour should be allowed on XNFS compliant servers. This
    issue should be submitted to the relevant technical groups for interpretation.
    Test Output
    ************************************************************************
    /tset/POSIX.os/files/utime/T.utime 27 Failed

    Test Description:
    For the XNFS specification:
    When utime(path, times) references a file on a remote file system
    and the times argument is not NULL and the process's effective
    user ID matches the user ID of the file and the server maps the
    process's effective user ID and the process has write permission
    on the file, then -1 is returned, errno is set to EPERM and the
    file's last accessed and last modified times are not changed.
    For the XSH specification:
    Not in use

    Test Strategy:
    SERVER:
    CREATE file using crfile() - (genlib)
    CLOSE file using close()
    CLIENT:
    CREATE child process using cppair() - (genlib)
    SET file access and modification times using utime() using the
    values in utimbuf structure
    VERIFY that utime() returned -1 and errno set to EPERM
    OBTAIN status information using stat()
    VERIFY that st_atime and st_mtime have not been changed
    UNLINK file using unlink()

    Test Information:
    utime("./utime-t.27", {actime=759623037, modtime=759623037}) did not
    give correct results
    RETURN VALUES: expected: -1, observed: 0
    ERRNO VALUES: expected: 1 (EPERM), observed: 0 (NO ERROR)
    ************************************************************************

    Review Information

    Review Type TSMA Review
    Start Date null
    Completed null
    Status Complete
    Review Recommendation No Resolution Given
    Review Response
    The above commentary fully describes the current status of this request
    which is recommended for forwarding to the X-Net working group for
    interpretation.

    Since the behaviour is necessary for the support of older NFS clients, it
    is recommended that a permanent interpretation is granted.

    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:

     

    Back   


Contact the Certification Authority