(/home/sate/Testcases/c/cve/wireshark-1.2.0/epan/dissectors/packet-smb2.c) |
| |
| 4058 | | | dissect_smb2_read_response(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, int offset, smb2_info_t *si _U_) |
| 4059 | | | { |
| 4060 | | | guint32 length; |
| 4061 | | | |
| 4062 | | | switch (si->status) { |
Event 1:
si->status evaluates to 0.
hide
|
|
| 4063 | | | case 0x00000000: break; |
| 4064 | | | default: return dissect_smb2_error_response(tvb, pinfo, tree, offset, si); |
| 4065 | | | } |
| 4066 | | | |
| 4067 | | | |
| 4068 | | | offset = dissect_smb2_buffercode(tree, tvb, offset, NULL); |
| 4069 | | | |
| 4070 | | | |
| 4071 | | | proto_tree_add_item(tree, hf_smb2_data_offset, tvb, offset, 2, TRUE); |
Event 2:
!0 evaluates to true.
hide
|
|
| 4072 | | | offset += 2; |
| 4073 | | | |
| 4074 | | | |
| 4075 | [+] | | length=tvb_get_letohl(tvb, offset); |
 |
| 4076 | | | proto_tree_add_item(tree, hf_smb2_read_length, tvb, offset, 4, TRUE); |
Event 3:
!0 evaluates to true.
hide
|
|
| 4077 | | | offset += 4; |
| 4078 | | | |
| 4079 | | | |
| 4080 | | | proto_tree_add_item(tree, hf_smb2_read_remaining, tvb, offset, 4, TRUE); |
Event 4:
!0 evaluates to true.
hide
|
|
| 4081 | | | offset += 4; |
| 4082 | | | |
| 4083 | | | |
| 4084 | | | offset += 4; |
| 4085 | | | |
| 4086 | | | |
| 4087 | | | |
| 4088 | | | |
| 4089 | | | |
| 4090 | | | if(length && ( (si->tree && si->tree->share_type == SMB2_SHARE_TYPE_IPC)||(si->flags & SMB2_FLAGS_ASYNC_CMD))){ |
Event 5:
Skipping " if". length evaluates to false.
hide
|
|
| 4091 | | | offset = dissect_file_data_dcerpc(tvb, pinfo, tree, offset, length, si->top_tree); |
| 4092 | | | return offset; |
| 4093 | | | } |
| 4094 | | | |
| 4095 | | | |
| 4096 | | | proto_tree_add_item(tree, hf_smb2_read_data, tvb, offset, length, TRUE); |
Event 6:
!0 evaluates to true.
hide
|
|
| 4097 | [+][+] | | offset += MIN(length,(guint32)tvb_length_remaining(tvb, offset));
x /usr/include/glib-2.0/glib/gmacros.h |
| |
201 | #define MIN(a, b) (((a) < (b)) ? (a) : (b)) |
| |
|
 |
 |
| |