(/home/sate/Testcases/c/cve/wireshark-1.2.0/epan/dissectors/packet-giop.c) |
| |
| 2799 | | | dissect_target_address(tvbuff_t * tvb, packet_info *pinfo, int *offset, proto_tree * tree, |
| 2800 | | | gboolean stream_is_big_endian, guint32 *object_key_len, |
| 2801 | | | gchar **object_key_val) |
| 2802 | | | { |
| 2803 | | | guint16 discriminant; |
| 2804 | | | gchar *object_key; |
| 2805 | | | gchar *p_object_key; |
| 2806 | | | guint32 len = 0; |
| 2807 | | | guint32 u_octet4; |
| 2808 | | | |
| 2809 | | | object_key = NULL; |
| 2810 | | | discriminant = get_CDR_ushort(tvb, offset, stream_is_big_endian,); |
| 2811 | | | if(tree) |
| 2812 | | | { |
| 2813 | | | proto_tree_add_text (tree, tvb, *offset -2, 2, |
| 2814 | | | "TargetAddress Discriminant: %u", discriminant); |
| 2815 | | | } |
| 2816 | | | |
| 2817 | | | switch (discriminant) |
| 2818 | | | { |
| 2819 | | | case 0: |
| 2820 | | | len = get_CDR_ulong(tvb, offset, stream_is_big_endian,); |
| 2821 | | | if(tree) |
| 2822 | | | { |
| 2823 | | | proto_tree_add_text (tree, tvb, *offset -4, 4, |
| 2824 | | | "KeyAddr (object key length): %u", len); |
| 2825 | | | } |
| 2826 | | | |
| 2827 | | | if (len > 0) { |
| 2828 | | | |
| 2829 | | | get_CDR_octet_seq(tvb, &object_key, offset, len); |
| 2830 | | | p_object_key = make_printable_string( object_key, len ); |
| 2831 | | | |
| 2832 | | | if(tree) |
| 2833 | | | { |
| 2834 | | | proto_tree_add_text (tree, tvb, *offset -len, len, |
| 2835 | | | "KeyAddr (object key): %s", p_object_key); |
| 2836 | | | } |
| 2837 | | | g_free( p_object_key ); |
| 2838 | | | if (object_key_len) { |
| 2839 | | | *object_key_len = len; |
| 2840 | | | } |
| 2841 | | | if (object_key_val) { |
| 2842 | | | *object_key_val = object_key; |
| 2843 | | | } else { |
| 2844 | | | g_free( object_key ); |
| 2845 | | | } |
| 2846 | | | } |
| 2847 | | | break; |
| 2848 | | | case 1: |
| 2849 | | | decode_TaggedProfile(tvb, pinfo, tree, offset, , |
| 2850 | | | stream_is_big_endian, NULL); |
| 2851 | | | break; |
| 2852 | | | case 2: |
| 2853 | | | u_octet4 = get_CDR_ulong(tvb, offset, stream_is_big_endian,); |
Ignored Return Value
The return value of get_CDR_ulong() 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 get_CDR_ulong() 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 get_CDR_ulong() from the Ignored Return Value check, use configuration file parameter RETURN_CHECKER_IGNORED_FUNCS).
Show: All events | Only primary events |
|
| 2854 | | | |
| 2855 | | | if(tree) |
Event 2:
Skipping " if". tree evaluates to false.
hide
|
|
| 2856 | | | { |
| 2857 | | | proto_tree_add_text (tree, tvb, *offset -len -4, 4, |
| 2858 | | | "ReferenceAddr (selected_profile_index): %u", u_octet4); |
| 2859 | | | } |
| 2860 | | | |
| 2861 | | | decode_IOR(tvb, pinfo, tree, offset, , stream_is_big_endian); |
| 2862 | | | break; |
| 2863 | | | default: |
| 2864 | | | break; |
| 2865 | | | } |
| 2866 | | | } |
| |