(/home/sate/Testcases/c/cve/wireshark-1.2.0/epan/dissectors/packet-asap.c) |
| |
| 166 | | | dissect_error_cause(tvbuff_t *cause_tvb, proto_tree *parameter_tree) |
| 167 | | | { |
| 168 | | | guint16 code, length, padding_length; |
| 169 | | | proto_item *cause_item; |
| 170 | | | proto_tree *cause_tree; |
| 171 | | | tvbuff_t *parameter_tvb, *message_tvb; |
| 172 | | | |
| 173 | | | code = tvb_get_ntohs(cause_tvb, CAUSE_CODE_OFFSET); |
| 174 | | | length = tvb_get_ntohs(cause_tvb, CAUSE_LENGTH_OFFSET); |
| 175 | | | padding_length = tvb_length(cause_tvb) - length; |
| 176 | | | |
| 177 | | | cause_item = proto_tree_add_text(parameter_tree, cause_tvb, , tvb_length(cause_tvb), "%s", val_to_str(code, cause_code_values, "Unknown error cause")); |
| 178 | | | cause_tree = proto_item_add_subtree(cause_item, ett_asap_cause); |
| 179 | | | |
| 180 | | | proto_tree_add_item(cause_tree, hf_cause_code, cause_tvb, CAUSE_CODE_OFFSET, CAUSE_CODE_LENGTH, NETWORK_BYTE_ORDER); |
| 181 | | | proto_tree_add_item(cause_tree, hf_cause_length, cause_tvb, CAUSE_LENGTH_OFFSET, CAUSE_LENGTH_LENGTH, NETWORK_BYTE_ORDER); |
| 182 | | | |
| 183 | | | switch(code) { |
| 184 | | | case UNRECOGNIZED_PARAMETER_CAUSE_CODE: |
| 185 | | | parameter_tvb = tvb_new_subset(cause_tvb, CAUSE_INFO_OFFSET, -1, -1); |
| 186 | | | dissect_parameter(parameter_tvb, cause_tree); |
| 187 | | | break; |
| 188 | | | case UNRECONGNIZED_MESSAGE_CAUSE_CODE: |
| 189 | | | message_tvb = tvb_new_subset(cause_tvb, CAUSE_INFO_OFFSET, -1, -1); |
| 190 | | | dissect_asap(message_tvb, NULL, cause_tree); |
| 191 | | | break; |
| 192 | | | break; |
Unreachable Control Flow
The highlighted code will not execute under any circumstances. This may be because of: |
|
| 193 | | | case INVALID_VALUES: |
| 194 | | | parameter_tvb = tvb_new_subset(cause_tvb, CAUSE_INFO_OFFSET, -1, -1); |
| 195 | | | dissect_parameter(parameter_tvb, cause_tree); |
| 196 | | | break; |
| 197 | | | case NON_UNIQUE_PE_IDENTIFIER: |
| 198 | | | break; |
| 199 | | | case POOLING_POLICY_INCONSISTENT_CAUSE_CODE: |
| 200 | | | parameter_tvb = tvb_new_subset(cause_tvb, CAUSE_INFO_OFFSET, -1, -1); |
| 201 | | | dissect_parameter(parameter_tvb, cause_tree); |
| 202 | | | break; |
| 203 | | | case LACK_OF_RESOURCES_CAUSE_CODE: |
| 204 | | | break; |
| 205 | | | case INCONSISTENT_TRANSPORT_TYPE_CAUSE_CODE: |
| 206 | | | parameter_tvb = tvb_new_subset(cause_tvb, CAUSE_INFO_OFFSET, -1, -1); |
| 207 | | | dissect_parameter(parameter_tvb, cause_tree); |
| 208 | | | break; |
| 209 | | | case INCONSISTENT_DATA_CONTROL_CONFIGURATION_CAUSE_CODE: |
| 210 | | | break; |
| 211 | | | case UNKNOWN_POOL_HANDLE: |
| 212 | | | break; |
| 213 | | | case REJECTION_DUE_TO_SECURITY_CAUSE_CODE: |
| 214 | | | break; |
| 215 | | | default: |
| 216 | | | dissect_unknown_cause(cause_tvb, cause_tree, cause_item); |
| 217 | | | break; |
| 218 | | | } |
| 219 | | | if (padding_length > 0) |
| 220 | | | proto_tree_add_item(cause_tree, hf_cause_padding, cause_tvb, + length, padding_length, NETWORK_BYTE_ORDER); |
| 221 | | | } |
| |