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

The Open Brand -- Problem Reporting and Interpretations System


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


Report 1775 Actions


    Problem Report Number 1775
    Submitter's Classification Specification problem
    State Resolved
    Resolution Temporary Interpretation (TIN)
    Problem Resolution ID TIN.X.0074
    Raised 1970-01-01 08:00
    Updated 2003-03-13 08:00
    Published 1998-08-12 08:00
    Product Standard X Window System Display
    Certification Program The Open Brand certification program
    Test Suite VSW version 5.0.1
    Test Identification Xt11/XtCallbackReleaseCacheRefList 1
    Specification X Window System Protocol
    Location in Spec See Problem Text
    Problem Summary TIN4W.00008 This submitter claims the test may fail because of a difference between the reference code and the specification.
    Problem Text
    If you look at $VSW/tset/Xt11/tcalbrcrl/tcalbrcrl.m,
    you can see a call to XtAddCallback ...

    XtAddCallback(topLevel,
    XtNdestroyCallback,
    XtCallbackReleaseCacheRefList,
    (XtPointer)cache_ref_return);

    where cache_ref_return has previously been defined as ...

    XtCacheRef cache_ref_return[3]


    XtCallCallbacks() is next and subsequently XtCallbackReleaseCacheRefList
    is called. The sample code for XtCallbackReleaseCacheRefList() is


    /* ARGSUSED */
    void XtCallbackReleaseCacheRefList(widget, closure, call_data)
    Widget widget; /* unused */
    XtPointer closure;
    XtPointer call_data; /* unused */
    {
    XtAppReleaseCacheRefs( XtWidgetToApplicationContext(widget),
    (XtCacheRef*)closure );
    XtFree(closure);
    }

    So, basically we end up calling XtFree for cache_ref_return which is
    obviously not such a good thing to do (considering we didn't alloc it
    in the first place). The application core dumps the next time it tries
    a malloc (in tet_bufchk ... bp = malloc((size_t) newlen); ).
    Test Output
    TEST CASE: XtCallbackReleaseCacheRefList

    TEST PURPOSE #1
    Assertion XtCallbackReleaseCacheRefList-1.(A)
    When added to a callback list with client_data specified as
    a pointer to a NULL-terminated list of XtCacheRef values and
    later invoked, void XtCallbackReleaseCacheRefList(object,
    client_data, call_data) shall decrement the reference counts
    for the conversion entries specified by client_data.
    PREP: Initialize toolkit, Open display and Create topLevel root widget
    PREP: Create windows for widgets and map them
    PREP: Register resource converter
    PREP: Invoke converter twice to cache resources
    TEST: Invoke XtCallbackReleaseCacheRefList callback
    unexpected signal 11 (SIGSEGV) received
    1 UNRESOLVED

    Review Information

    Review Type TSMA Review
    Start Date null
    Completed null
    Status Complete
    Review Recommendation No Resolution Given
    Review Response
    We believe the submitter has identified a problem in the
    reference code. It should not be freeing this memory.

    Thus it is recommended that a Temporary Interpretation be granted
    for this test while it remains subject to review. If a change to
    the specification results from the conclusion of this investigation,
    then this Temporary Interpretation will be converted to a Permanent Waiver.
    Otherwise this Temporary Interpretation will be converted to a Temporary
    Waiver (Minor System Fault).

    Note to TOG: We recommend a problem report be filed against the reference code
    for this issue.

    Review Type SA Review
    Start Date null
    Completed null
    Status Complete
    Review Resolution Temporary Interpretation (TIN)
    Review Conclusion
    A Temporary Interpretation is granted.

    Problem Reporting System Options:

     

    Back   


Contact the Certification Authority