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

The Open Brand -- Problem Reporting and Interpretations System


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


Report 2454 Actions


    Problem Report Number 2454
    Submitter's Classification Test Suite problem
    State Resolved
    Resolution Rejected (REJ)
    Problem Resolution ID REJ.X.0666
    Raised 2005-03-26 02:33
    Updated 2005-03-31 03:44
    Published 2005-03-31 03:44
    Product Standard Internationalised System Calls and Libraries Extended V3 (UNIX 03)
    Certification Program The Open Brand certification program
    Test Suite VSU version 5.2.6
    Test Identification CAPI.os/mman/mmap 41
    Specification Base Definitions Issue 6
    Problem Summary Call to mmap() in assertion 41 does not send a proper offset
    Problem Text The problem with this assertion is that it tries to mmap a file using a
    32-bit file descriptor starting at offset 0x80000000, or -2147483648
    (INT32_MIN) considering a 32-bit file descriptor's off_t is a signed long.

    Instead, to generate the error condition it is looking for, the test
    should try to mmap starting at offset 0x7ffff000 for 4096 bytes or more,
    something that will cause "offset + len" to overflow properly in
    t41lrgoff.c.
    Test Output
    ****************************************************************************************************************
    /tset/CAPI.os/mman/mmap/T.mmap 41 Failed

    Test Description:
    Base Required Deviance
    EOVERFLOW in errno and return MAP_FAILED on a call to void
    *mmap(void
    *addr, size_t len, int prot, int flags, int fildes, off_t off) when
    file is a regular file and the value of off plus len exceeds the
    offset maximum established in the open file description associated
    with fildes.

    Test Information:
    PREP: Check for existence of programming environments
    PREP: Obtain off_t size in ILP32_OFF32 environment
    PREP: Obtain off_t size in ILP32_OFFBIG environment
    PREP: Obtain off_t size in LP64_OFF64 environment
    PREP: Obtain off_t size in LPBIG_OFFBIG environment
    TEST: Execute a program compiled in ILP32_OFF32(32-bit off_t)
    environment that:
    opens a regular file for writing
    execs a program compiled in ILP32_OFFBIG(64-bit off_t)
    environment,
    passing it the open file descriptor
    this program:
    verifies mmap returns -1 and sets errno to
    EOVERFLOW when off+len exceeds the offset maximum
    ERROR: In LFS program: mmap did not fail. Expected: MAP_FAILED
    (-1), Received: fee60000
    TEST: Execute a program compiled in ILP32_OFF32(32-bit off_t)
    environment that:
    opens a regular file for writing
    execs a program compiled in LP64_OFF64(64-bit off_t)
    environment,
    passing it the open file descriptor
    this program:
    verifies mmap returns -1 and sets errno to
    EOVERFLOW when off+len exceeds the offset maximum
    ERROR: In LFS program: mmap did not fail. Expected: MAP_FAILED
    (-1), Received: fffffd7fff200000
    TEST: Execute a program compiled in ILP32_OFF32(32-bit off_t)
    environment that:
    opens a regular file for writing
    execs a program compiled in LPBIG_OFFBIG(64-bit off_t)
    environment,
    passing it the open file descriptor
    this program:
    verifies mmap returns -1 and sets errno to
    EOVERFLOW when off+len exceeds the offset maximum
    ERROR: In LFS program: mmap did not fail. Expected: MAP_FAILED
    (-1), Received: fffffd7fff200000


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

    Review Information

    Review Type TSMA Review
    Start Date 2005-03-26 02:33
    Last Updated 2005-03-29 18:17
    Completed 2005-03-29 18:17
    Status Complete
    Review Recommendation Rejected (REJ)
    Review Response The standard requires mmap() to fail with EOVERFLOW when off+len exceeds
    the offset maximum for the file descriptor, regardless of whether off
    alone exceeds the offset maximum. In the test the value off is passed
    to mmap() as a 64-bit off_t value. If mmap() is converting it to a
    32-bit value before it does the check of off+len against the offset
    maximum, thus performing the check with a truncated value instead of the
    actual value that was passed as the off argument to mmap(), then that is
    clearly a bug in the implementation.

    Review Type SA Review
    Start Date 2005-03-29 17:17
    Last Updated 2005-03-29 22:34
    Completed 2005-03-29 22:34
    Status Complete
    Review Resolution Rejected (REJ)
    Review Conclusion This request should be refused for the reason given by the TSMA.

    Problem Reporting System Options:

     

    Back   


Contact the Certification Authority