(/home/sate/Testcases/c/cve/wireshark-1.2.0/epan/dissectors/packet-h450-ros.c) |
| |
| 350 | | | dissect_h450_ros_ReturnError(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { |
| 351 | | | #line 7 "ros-err.cnf" |
| 352 | | | dissector_handle_t err_handle = NULL; |
| 353 | | | const gchar *descr = ""; |
| 354 | | | |
| 355 | | | err_next_tvb = NULL; |
| 356 | | | |
| 357 | | | offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, |
| 358 | | | ett_h450_ros_ReturnError, ReturnError_sequence); |
| 359 | | | |
| 360 | | | #line 12 "ros-err.cnf" |
| 361 | | | actx->rose_ctx->d.pdu = 3; |
| 362 | | | |
| 363 | | | if ((actx->rose_ctx->d.code == 0) && actx->rose_ctx->err_local_dissector_table) { |
| 364 | | | err_handle = dissector_get_port_handle(actx->rose_ctx->err_local_dissector_table, actx->rose_ctx->d.code_local); |
| 365 | | | } else if ((actx->rose_ctx->d.code == 1) && actx->rose_ctx->err_global_dissector_table) { |
| 366 | | | err_handle = dissector_get_string_handle(actx->rose_ctx->err_global_dissector_table, actx->rose_ctx->d.code_global); |
| 367 | | | } else { |
| 368 | | | err_handle = NULL; |
| 369 | | | } |
| 370 | | | |
| 371 | | | if (!err_handle || |
| 372 | | | !proto_is_protocol_enabled(find_protocol_by_id(dissector_handle_get_protocol_index(err_handle)))) { |
| 373 | | | if (actx->rose_ctx->d.code == 0) |
| 374 | | | descr = ep_strdup_printf("ERR: %d", actx->rose_ctx->d.code_local); |
| 375 | | | else if (actx->rose_ctx->d.code == 1) |
| 376 | | | descr = ep_strdup_printf("ERR: %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 |
|
| 377 | | | } else { |
| 378 | | | descr = ep_strdup_printf("ERR:"); |
| 379 | | | } |
| 380 | | | |
| 381 | | | if (actx->rose_ctx->apdu_depth >= 0) |
Event 2:
Skipping " if". actx->rose_ctx->apdu_depth >= 0 evaluates to false.
hide
|
|
| 382 | | | proto_item_append_text(proto_item_get_parent_nth(proto_tree_get_parent(tree), actx->rose_ctx->apdu_depth), " %s", descr); |
| 383 | | | 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
|
|
| 384 | | | col_append_str(actx->pinfo->cinfo, COL_INFO, descr); |
| 385 | | | if (actx->rose_ctx->fillin_ptr) |
Event 4:
Skipping " if". actx->rose_ctx->fillin_ptr evaluates to false.
hide
|
|
| 386 | | | g_strlcat(actx->rose_ctx->fillin_ptr, descr, actx->rose_ctx->fillin_buf_size); |
| 387 | | | |
| 388 | | | if (!err_next_tvb) { |
Event 5:
Taking true branch. err_next_tvb evaluates to false.
hide
|
|
| 389 | | | err_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
|
|
| 390 | | | } |
| 391 | | | actx->pinfo->private_data = actx->rose_ctx; |
| 392 | | | call_dissector((err_handle)?err_handle:data_handle, err_next_tvb, actx->pinfo, tree); |
Event 7:
err_handle evaluates to false.
hide
|
|
| 393 | | | |
| 394 | | | return offset; |
| 395 | | | } |
| |