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

The Open Brand -- Problem Reporting and Interpretations System


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


Report 1203 Actions


    Problem Report Number 1203
    Submitter's Classification Specification problem
    State Resolved
    Resolution Rejected (REJ)
    Problem Resolution ID REJ.X.0405
    Raised 1970-01-01 08:00
    Updated 2003-03-13 08:00
    Published null
    Product Standard Internationalised System Calls and Libraries Extended (UNIX 95)
    Certification Program The Open Brand certification program
    Test Suite VSU version 4.1.0
    Test Identification headers/ndbm.h 3
    Problem Summary PG4U.00062 This IR claims that it is invalid to declare a variable of type DBM that is not a pointer to a DBM type.
    Problem Text
    This IR claims that it is invalid to declare a variable of type DBM
    that is not a pointer to a DBM type.

    The X/OPEN standard (Issue 4, Version 2, Sept. 1994) shows under <ndbm.h>
    the DBM type is defined through typedef. None of the fields in the DBM
    structure are accessible to the users application, and all of the function
    prototypes are giving/expecting a DBM *. In our implementation, due to
    multi-threading considerations, we've moved the contents of the DBM
    structure to an internal dataarea, __dbm, which is what DBM typedef's to.
    Thus, the only permissible application definition of DBM is as:
    struct DBM * mydbm;
    I believe, given the wording described in the <ndbm.h> section, that the
    X/OPEN VSU test that declares DBM mydbm; (and then doesn't use it) is
    in error. I believe that this is the only program that uses this
    construct.

    We sent the above rationale to vsu_support, last year. Below was their
    reply:
    -----------------------------------------------------------------------
    We believe the test properly corresponds to the requirements of the spec
    for the DBM type.
    What you suggest is not unreasonable - we are aware of no use for this
    type other than to get pointers to things from dbm_open and pass
    them to other dbm functions. However a spec change would be required
    to remove the test. The procedures for making such an interpretation
    request against the spec are described in Chapter 8 of the User's Guide.
    We would be inclined to approve such a request if you choose to file one

    Note BTW that the test does not manipulate the myDBM object since as an
    opaque type there is nothing meaningful that can be done. However by
    defining the object the test is ensuring the type can be used by applica
    in the manner the spec currently requires as compilation failures will
    result otherwise.
    -----------------------------------------------------------------------
    We believe this is a grey area in the Specification and we are
    requesting a permanent interpretation.
    Test Output
    None provided.

    Review Information

    Review Type TSMA Review
    Start Date null
    Completed null
    Status Complete
    Review Recommendation No Resolution Given
    Review Response
    We recommend this request be refused.

    We believe the test is correct.

    The spec is clear that the DBM type be defined via typedef.
    We maintain that any type defined via typedef should work
    whether mydbm is defined via the statement

    DBM mydbm;
    or
    DBM *mydbm;

    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:

     

    Back   


Contact the Certification Authority