(/home/sate/Testcases/c/cve/wireshark-1.2.0/epan/dissectors/packet-h450-ros.c) |
| |
| 206 | | | dissect_h450_ros_Invoke(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { |
| 207 | | | #line 8 "ros-inv.cnf" |
| 208 | | | dissector_handle_t arg_handle = NULL; |
| 209 | | | const gchar *descr = ""; |
| 210 | | | |
| 211 | | | arg_next_tvb = NULL; |
| 212 | | | |
| 213 | | | offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, |
| 214 | | | ett_h450_ros_Invoke, Invoke_sequence); |
| 215 | | | |
| 216 | | | #line 13 "ros-inv.cnf" |
| 217 | | | actx->rose_ctx->d.pdu = 1; |
| 218 | | | |
| 219 | | | if ((actx->rose_ctx->d.code == 0) && actx->rose_ctx->arg_local_dissector_table) { |
| 220 | | | arg_handle = dissector_get_port_handle(actx->rose_ctx->arg_local_dissector_table, actx->rose_ctx->d.code_local); |
| 221 | | | } else if ((actx->rose_ctx->d.code == 1) && actx->rose_ctx->arg_global_dissector_table) { |
| 222 | | | arg_handle = dissector_get_string_handle(actx->rose_ctx->arg_global_dissector_table, actx->rose_ctx->d.code_global); |
| 223 | | | } else { |
| 224 | | | arg_handle = NULL; |
| 225 | | | } |
| 226 | | | |
| 227 | | | if (!arg_handle || |
| 228 | | | !proto_is_protocol_enabled(find_protocol_by_id(dissector_handle_get_protocol_index(arg_handle)))) { |
| 229 | | | if (actx->rose_ctx->d.code == 0) |
| 230 | | | descr = ep_strdup_printf("INV: %d", actx->rose_ctx->d.code_local); |
| 231 | | | else if (actx->rose_ctx->d.code == 1) |
| 232 | | | descr = ep_strdup_printf("INV: %s", actx->rose_ctx->d.code_global); |
Ignored Return Value
The return value of ep_strdup_printf() is never checked in the highlighted execution scenario. - If the return value can indicate an error, the error will be ignored if the highlighted code executes.
- The return value of ep_strdup_printf() is checked 97% of the time in this project. CodeSonar is configured to enforce Ignored Return Value checks for any function whose return value is checked at least 96% of the time, unless the function is used fewer than 20 times. (To modify these thresholds, use configuration file parameters RETURN_CHECKER_SAMPLE_SIZE and RETURN_CHECKER_RATIO. To exempt ep_strdup_printf() from the Ignored Return Value check, use configuration file parameter RETURN_CHECKER_IGNORED_FUNCS).
Show: All events | Only primary events |
|
| 233 | | | } else { |
| 234 | | | descr = ep_strdup_printf("INV:"); |
| 235 | | | } |
| 236 | | | |
| 237 | | | if (actx->rose_ctx->apdu_depth >= 0) |
Event 2:
Skipping " if". actx->rose_ctx->apdu_depth >= 0 evaluates to false.
hide
|
|
| 238 | | | proto_item_append_text(proto_item_get_parent_nth(proto_tree_get_parent(tree), actx->rose_ctx->apdu_depth), " %s", descr); |
| 239 | | | if (actx->rose_ctx->fillin_info && check_col(actx->pinfo->cinfo, COL_INFO)) |
Event 3:
Skipping " if". - actx->rose_ctx->fillin_info evaluates to true.
- check_col(...) evaluates to false.
hide
|
|
| 240 | | | col_append_str(actx->pinfo->cinfo, COL_INFO, descr); |
| 241 | | | if (actx->rose_ctx->fillin_ptr) |
Event 4:
Skipping " if". actx->rose_ctx->fillin_ptr evaluates to false.
hide
|
|
| 242 | | | g_strlcat(actx->rose_ctx->fillin_ptr, descr, actx->rose_ctx->fillin_buf_size); |
| 243 | | | |
| 244 | | | if (!arg_next_tvb) { |
Event 5:
Taking true branch. arg_next_tvb evaluates to false.
hide
|
|
| 245 | | | arg_next_tvb = tvb_new_subset(tvb, (actx->encoding==ASN1_ENC_PER)?offset>>3:offset, 0, 0); |
Event 6:
actx->encoding == ASN1_ENC_PER evaluates to true.
hide
|
|
| 246 | | | } |
| 247 | | | actx->pinfo->private_data = actx->rose_ctx; |
| 248 | | | call_dissector((arg_handle)?arg_handle:data_handle, arg_next_tvb, actx->pinfo, tree); |
Event 7:
arg_handle evaluates to false.
hide
|
|
| 249 | | | |
| 250 | | | return offset; |
| 251 | | | } |
| |