(/home/sate/Testcases/c/cve/wireshark-1.2.0/epan/dissectors/packet-h450-ros.c) |
| |
| 285 | | | dissect_h450_ros_ReturnResult(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { |
| 286 | | | #line 7 "ros-res.cnf" |
| 287 | | | dissector_handle_t res_handle = NULL; |
| 288 | | | const gchar *descr = ""; |
| 289 | | | |
| 290 | | | res_next_tvb = NULL; |
| 291 | | | |
| 292 | | | offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, |
| 293 | | | ett_h450_ros_ReturnResult, ReturnResult_sequence); |
| 294 | | | |
| 295 | | | #line 12 "ros-res.cnf" |
| 296 | | | actx->rose_ctx->d.pdu = 2; |
| 297 | | | |
| 298 | | | if ((actx->rose_ctx->d.code == 0) && actx->rose_ctx->res_local_dissector_table) { |
| 299 | | | res_handle = dissector_get_port_handle(actx->rose_ctx->res_local_dissector_table, actx->rose_ctx->d.code_local); |
| 300 | | | } else if ((actx->rose_ctx->d.code == 1) && actx->rose_ctx->res_global_dissector_table) { |
| 301 | | | res_handle = dissector_get_string_handle(actx->rose_ctx->res_global_dissector_table, actx->rose_ctx->d.code_global); |
| 302 | | | } else { |
| 303 | | | res_handle = NULL; |
| 304 | | | } |
| 305 | | | |
| 306 | | | if (!res_handle || |
| 307 | | | !proto_is_protocol_enabled(find_protocol_by_id(dissector_handle_get_protocol_index(res_handle)))) { |
| 308 | | | if (actx->rose_ctx->d.code == 0) |
| 309 | | | descr = ep_strdup_printf("RES: %d", actx->rose_ctx->d.code_local); |
| 310 | | | else if (actx->rose_ctx->d.code == 1) |
| 311 | | | descr = ep_strdup_printf("RES: %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 |
|
| 312 | | | } else { |
| 313 | | | descr = ep_strdup_printf("RES:"); |
| 314 | | | } |
| 315 | | | |
| 316 | | | if (actx->rose_ctx->apdu_depth >= 0) |
Event 2:
Skipping " if". actx->rose_ctx->apdu_depth >= 0 evaluates to false.
hide
|
|
| 317 | | | proto_item_append_text(proto_item_get_parent_nth(proto_tree_get_parent(tree), actx->rose_ctx->apdu_depth), " %s", descr); |
| 318 | | | 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
|
|
| 319 | | | col_append_str(actx->pinfo->cinfo, COL_INFO, descr); |
| 320 | | | if (actx->rose_ctx->fillin_ptr) |
Event 4:
Skipping " if". actx->rose_ctx->fillin_ptr evaluates to false.
hide
|
|
| 321 | | | g_strlcat(actx->rose_ctx->fillin_ptr, descr, actx->rose_ctx->fillin_buf_size); |
| 322 | | | |
| 323 | | | if (!res_next_tvb) { |
Event 5:
Taking true branch. res_next_tvb evaluates to false.
hide
|
|
| 324 | | | res_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
|
|
| 325 | | | } |
| 326 | | | actx->pinfo->private_data = actx->rose_ctx; |
| 327 | | | call_dissector((res_handle)?res_handle:data_handle, res_next_tvb, actx->pinfo, tree); |
Event 7:
res_handle evaluates to false.
hide
|
|
| 328 | | | |
| 329 | | | return offset; |
| 330 | | | } |
| |