(/home/sate/Testcases/c/cve/wireshark-1.2.0/plugins/profinet/packet-dcom-cba-acco.c) |
| |
| 1569 | | | dissect_ICBAAccoServer_Connect_resp(tvbuff_t *tvb, int offset, |
| 1570 | | | packet_info *pinfo, proto_tree *tree, guint8 *drep) |
| 1571 | | | { |
| 1572 | | | guint8 u8FirstConnect; |
| 1573 | | | guint32 u32Pointer; |
| 1574 | | | guint32 u32ArraySize = 0; |
| 1575 | | | guint32 u32HResult; |
| 1576 | | | guint32 u32Idx = 1; |
| 1577 | | | guint32 u32ProvID; |
| 1578 | | | proto_item *sub_item; |
| 1579 | | | proto_tree *sub_tree; |
| 1580 | | | guint32 u32SubStart; |
| 1581 | | | proto_item *item; |
| 1582 | | | dcerpc_info *info = (dcerpc_info *)pinfo->private_data; |
| 1583 | | | server_connect_call_t *call = info->call_data->private_data; |
| 1584 | | | cba_connection_t *conn; |
| 1585 | | | |
| 1586 | | | |
| 1587 | | | offset = dissect_dcom_that(tvb, offset, pinfo, tree, drep); |
| 1588 | | | |
| 1589 | | | if(call == NULL) { |
Event 1:
Skipping " if". call == (void *)0 evaluates to false.
hide
|
|
| 1590 | | | expert_add_info_format(pinfo, NULL, PI_UNDECODED, PI_NOTE, |
| 1591 | | | "No request info, response data ignored"); |
| 1592 | | | } |
| 1593 | | | |
| 1594 | | | item = proto_tree_add_boolean (tree, hf_cba_acco_dcom_call, tvb, offset, 0, FALSE); |
| 1595 | | | PROTO_ITEM_SET_GENERATED(item);
x /home/sate/Testcases/c/cve/wireshark-1.2.0/epan/proto.h |
| |
325 | #define PROTO_ITEM_SET_GENERATED(proto_item) \ |
326 | ((proto_item) ? FI_SET_FLAG((proto_item)->finfo, FI_GENERATED) : 0) |
| |
x /home/sate/Testcases/c/cve/wireshark-1.2.0/epan/proto.h |
| |
246 | #define FI_SET_FLAG(fi, flag) (fi->flags = fi->flags | flag) |
| |
|
Event 2:
item evaluates to false.
hide
|
|
| 1596 | | | pinfo->profinet_type = 1; |
| 1597 | | | |
| 1598 | | | offset = dissect_dcom_BOOLEAN(tvb, offset, pinfo, tree, drep, |
| 1599 | [+] | | hf_cba_acco_server_first_connect, &u8FirstConnect); |
Event 3:
dissect_ndr_uint8() does not initialize u8FirstConnect. - This may be because of a failure case or other special case for dissect_ndr_uint8().
hide
|
|
 |
| 1600 | | | |
| 1601 | | | offset = dissect_dcom_dcerpc_pointer(tvb, offset, pinfo, tree, drep, |
| 1602 | | | &u32Pointer); |
| 1603 | | | |
| 1604 | | | if (u32Pointer) { |
Event 5:
Skipping " if". u32Pointer evaluates to false.
hide
|
|
| 1605 | | | offset = dissect_dcom_dcerpc_array_size(tvb, offset, pinfo, tree, drep, |
| 1606 | | | &u32ArraySize); |
| 1607 | | | |
| 1608 | | | |
| 1609 | | | while(u32ArraySize--) { |
| 1610 | | | sub_item = proto_tree_add_item(tree, hf_cba_connectout, tvb, offset, 8, FALSE); |
| 1611 | | | sub_tree = proto_item_add_subtree(sub_item, ett_cba_connectout); |
| 1612 | | | u32SubStart = offset; |
| 1613 | | | |
| 1614 | | | offset = dissect_dcom_DWORD(tvb, offset, pinfo, sub_tree, drep, |
| 1615 1627 |  | | [ Lines 1615 to 1627 omitted. ] |
| 1628 | | | |
| 1629 | | | proto_item_append_text(sub_item, "[%u]: ProvID=0x%x %s", |
| 1630 | | | u32Idx, u32ProvID, |
| 1631 | | | val_to_str(u32HResult, dcom_hresult_vals, "Unknown (0x%08x)") ); |
| 1632 | | | proto_item_set_len(sub_item, offset - u32SubStart); |
| 1633 | | | |
| 1634 | | | u32Idx++; |
| 1635 | | | } |
| 1636 | | | } |
| 1637 | | | |
| 1638 | | | offset = dissect_dcom_HRESULT(tvb, offset, pinfo, tree, drep, |
| 1639 | | | &u32HResult); |
| 1640 | | | |
| 1641 | | | |
| 1642 | | | while(call && u32Idx <= call->conn_count) { |
| 1643 | | | conn = call->conns[u32Idx-1]; |
| 1644 | | | conn->provid = 0; |
| 1645 | | | conn->connret = u32HResult; |
| 1646 | | | u32Idx++; |
| 1647 | | | } |
| 1648 | | | |
| 1649 | [+] | | if (check_col(pinfo->cinfo, COL_INFO)) { |
 |
| 1650 | | | col_append_fstr(pinfo->cinfo, COL_INFO, ": %s Cnt=%u -> %s", |
| 1651 | | | (u8FirstConnect) ? "First" : "NotFirst", |
Uninitialized Variable
u8FirstConnect was not initialized. The issue can occur if the highlighted code executes. See related event 3. Show: All events | Only primary events |
|
| 1652 | | | u32Idx-1, |
| 1653 | | | val_to_str(u32HResult, dcom_hresult_vals, "Unknown (0x%08x)") ); |
| |