(/home/sate/Testcases/c/cve/wireshark-1.2.0/epan/dissectors/packet-multipart.c) |
| |
| 588 | | | process_body_part(proto_tree *tree, tvbuff_t *tvb, const guint8 *boundary, |
| 589 | | | gint boundary_len, packet_info *pinfo, gint start, |
| 590 | | | gboolean *last_boundary) |
| 591 | | | { |
| 592 | | | proto_tree *subtree = NULL; |
| 593 | | | proto_item *ti = NULL; |
| 594 | | | gint offset = start, next_offset = 0; |
| 595 | | | char *parameters = NULL; |
| 596 | | | gint body_start, boundary_start, boundary_line_len; |
| 597 | | | |
| 598 | | | char *content_type_str = NULL; |
| 599 | | | char *content_encoding_str = NULL; |
| 600 | | | char *filename = NULL; |
| 601 | | | char *typename = NULL; |
| 602 | | | int len = 0; |
| 603 | | | gboolean last_field = FALSE; |
| 604 | | | |
| 605 | | | if (tree) { |
Event 1:
Skipping " if". tree evaluates to false.
hide
|
|
| 606 | | | ti = proto_tree_add_item(tree, hf_multipart_part, tvb, start, 0, FALSE); |
| 607 | | | subtree = proto_item_add_subtree(ti, ett_multipart_body); |
| 608 | | | } |
| 609 | | | |
| 610 | | | |
| 611 | | | |
| 612 | | | |
| 613 | | | while (!last_field) |
Event 2:
Entering loop body. last_field evaluates to false.
hide
|
|
| 614 | | | { |
| 615 | | | gint colon_offset; |
| 616 | | | char *hdr_str; |
| 617 | | | char *; |
| 618 | | | |
| 619 | | | |
| 620 | | | |
| 621 | | | |
| 622 | | | next_offset = imf_find_field_end(tvb, offset, tvb_length_remaining(tvb, offset)+offset, &last_field); |
| 623 | | | |
| 624 | | | if (next_offset == offset) { |
Event 3:
Skipping " if". next_offset == offset evaluates to false.
hide
|
|
| 625 | | | break; |
| 626 | | | } |
| 627 | | | |
| 628 | | | hdr_str = tvb_get_ephemeral_string(tvb, offset, next_offset - offset); |
| 629 | | | |
| 630 | [+] | | = unfold_and_compact_mime_header(hdr_str, &colon_offset); |
 |
| 631 | | | if (colon_offset <= 0) { |
Event 7:
Taking false branch. colon_offset <= 0 evaluates to false.
hide
|
|
| 632 | | | if (tree) { |
| 633 | | | proto_tree_add_text(subtree, tvb, offset, next_offset - offset, |
| 634 | | | "%s", |
| 635 | | | tvb_format_text(tvb, offset, next_offset - offset)); |
| 636 | | | } |
| 637 | | | } else { |
| 638 | | | gint hf_index; |
| 639 | | | |
| 640 | | | |
| 641 | | | [colon_offset] = '\0'; |
Null Pointer Dereference
is dereferenced here, but it is NULL. The issue can occur if the highlighted code executes. See related event 6. Show: All events | Only primary events |
|
| |