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

The Open Brand -- Problem Reporting and Interpretations System


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


Report 1936 Actions


    Problem Report Number 1936
    Submitter's Classification Test Suite problem
    State Resolved
    Resolution Test Suite Deficiency (TSD)
    Problem Resolution ID TSD.X.0963
    Raised 1995-08-15 08:00
    Updated 2003-03-13 08:00
    Published 1995-08-31 08:00
    Product Standard Transport Service XTI
    Certification Program The Open Brand certification program
    Test Suite VST version 4.1.3
    Test Identification XTI.os/cots/T.connect 1
    Problem Summary TSDT4.001 In connect test 1, the master program is supposed to connect twice to the same target address. But the function u_rcvaddr() uses static variables to hold the struct netbuf and struct sockaddr_in which...
    Problem Text
    In connect test 1, the master program is supposed to connect twice
    to the same target address. But the function u_rcvaddr() uses
    static variables to hold the struct netbuf and struct sockaddr_in
    which contain the target address data, and u_rcvaddr() is called with
    a different address before the second t_connect() call. This results
    in the wrong sndcall address in the second t_connect(), and the test
    will timeout and fail

    connect.c test1() source:
    ========================

    [ provsetup() calls stateset()/u_rcvaddr() to create the address slvbret ]

    fd = provsetup(curr_prov, T_IDLE, O_RDWR, 1,
    &inforet, &bindret, &slvbret, &callret, SP_PROVSETUP);
    if (fd < 0)
    {
    /* message already output */
    if (testfail++ == 0)
    xx_rpt(DELETION);
    DBUG_RETURN(-1);
    }
    else
    PATH_TRACE;

    INITCALL(sndcall, slvbret.addr);
    TCALLOC(fd, rcvcall, T_CALL, curr_prov->pd_idstr);

    if(c_connect(fd, &sndcall, rcvcall, T_DATAXFER, 0, 0, curr_prov->pd_idst
    r) != 0)
    [...]


    [ u_rcvaddr() is called again before the second connect ]

    addr = u_rcvaddr(curr_prov->pd_idstr, decode_addr(*strvals));

    if(c_connect(fd, &sndcall, rcvcall, T_DATAXFER, 0, 0, curr_prov->pd_idst
    r) != 0)

    XTI call trace:
    ==============
    Mon Aug 14 16:43:29 1995 -> t_connect()
    > fd = 7
    > sndcall->addr.len = 16
    > sndcall->addr.buf = (16/16)
    00 02 4E 21 0F 0D 88 25 00 00 00 00 00 00 00 00 ..N!...%........
    > sndcall->opt.len = 0
    > sndcall->udata.len = 0
    > sndcall->udata.buf = (0/0)
    > rcvcall->addr.maxlen = 16
    > rcvcall->addr.buf = 0x40012B18
    > rcvcall->opt.maxlen = 256
    > rcvcall->opt.buf = 0x40012C98
    > rcvcall->udata.maxlen = 0
    > rcvcall->udata.buf = 0x0
    < rcvcall->addr.len = 16
    < rcvcall->addr.buf = (16/16)
    00 02 4E 21 0F 0D 88 25 00 00 00 00 00 00 00 00 ..N!...%........
    < rcvcall->opt.len = 0
    < rcvcall->udata.len = 0
    < rcvcall->udata.buf = (0/0)
    Mon Aug 14 16:43:29 1995 <- t_connect() = 0

    Mon Aug 14 16:43:29 1995 -> t_getstate()
    > fd = 7
    Mon Aug 14 16:43:29 1995 <- t_getstate() = 5

    Mon Aug 14 16:43:29 1995 -> t_look()
    > fd = 7
    Mon Aug 14 16:43:29 1995 <- t_look() = 0x0

    Mon Aug 14 16:43:29 1995 -> t_snddis()
    > fd = 7
    > call = 0x0
    Mon Aug 14 16:43:29 1995 <- t_snddis() = 0

    Mon Aug 14 16:43:30 1995 -> t_connect()
    > fd = 7
    > sndcall->addr.len = 16
    > sndcall->addr.buf = (16/16)
    00 02 4E 22 0F 0D 88 25 00 00 00 00 00 00 00 00 ..N"...%........
    > sndcall->opt.len = 0
    > sndcall->udata.len = 0
    > sndcall->udata.buf = (0/0)
    > rcvcall->addr.maxlen = 16
    > rcvcall->addr.buf = 0x40012B18
    > rcvcall->opt.maxlen = 256
    > rcvcall->opt.buf = 0x40012C98
    > rcvcall->udata.maxlen = 0
    > rcvcall->udata.buf = 0x0
    Mon Aug 14 16:43:55 1995 <- t_connect() = -1; t_errno = TSYSERR
    Test Output
    400|0 1 1 16:18:36|IC Start
    200|0 1 16:18:36|TP Start
    520|0 1 00100593 1 1|t_listen() on TCP endpoint
    520|0 1 00100593 1 2|RETURN VALUES: expected: 0, observed: -1
    520|0 1 00100593 1 3|TERRNO VALUES: expected: 0 (NO ERROR), observed: 8 (TSYSERR
    )
    520|0 1 00100593 1 4|errno was set to 4 (EINTR)
    520|0 1 00000592 1 1|t_connect() on TCP endpoint
    520|0 1 00000592 1 2|RETURN VALUES: expected: 0, observed: -1
    520|0 1 00000592 1 3|TERRNO VALUES: expected: 0 (NO ERROR), observed: 8 (TSYSERR
    )
    520|0 1 00000592 1 4|errno was set to 4 (EINTR)
    220|0 1 1 16:19:02|FAIL
    410|0 1 1 16:19:02|IC End

    Review Information

    Review Type TSMA Review
    Start Date null
    Completed null
    Status Complete
    Review Recommendation No Resolution Given
    Review Response
    This is a known fault in the user provided routines. While these
    routines could be changed by the user, the fault does exist in the
    copy supplied with the test suite and it is recommended that a waiver
    is granted.

    Review Type SA Review
    Start Date null
    Completed null
    Status Complete
    Review Resolution Test Suite Deficiency (TSD)
    Review Conclusion
    This is an agreed Test Suite Deficiency.

    Problem Reporting System Options:

     

    Back   


Contact the Certification Authority