Text   |  XML   |  ReML   |   Visible Warnings:

Null Pointer Dereference  at proto.c:3698

No properties have been set. | edit properties
Jump to warning location ↓ warning details...
Show Events | Options

dfilter_expr_dlg_new

(/home/sate/Testcases/c/cve/wireshark-1.2.0/gtk/dfilter_expr_dlg.c)expand/collapse
Show more  
 914  GtkWidget *
 915  dfilter_expr_dlg_new(GtkWidget *filter_te)
 916  {
 917      GtkWidget *window, *main_vb, *main_hb;
 918   
 919      GtkWidget *field_vb, *field_tree_lb, *field_tree, *tree_scrolled_win;
 920   
 921      GtkWidget *relation_vb, *relation_label, *relation_list, *relation_list_scrolled_win;
 922  /*    GtkWidget *relation_present_rb, *relation_equals_rb, *relation_unequals_rb,
 923                *relation_greater_rb, *relation_less_rb,
 924                *relation_greaterequal_rb, *relation_lessequal_rb,
 925                *relation_contains_rb, *relation_matches_rb;*/
 926   
 927      GtkWidget *value_vb, *value_label, *value_entry;
 928      GtkWidget *value_list_label, *value_list_scrolled_win, *value_list;
 929      GtkWidget *range_label, *range_entry;
 930   
 931      GtkWidget *list_bb, *ok_bt, *cancel_bt;
 932      header_field_info       *hfinfo;
 933      int i;
 934      protocol_t *protocol;
 935      GtkTreeStore *store;
 936      GtkTreeSelection *selection;
 937      GtkCellRenderer *renderer;
 938      GtkTreeViewColumn *column;
 939      GtkListStore      *l_store;
 940      GtkTreeSelection  *l_sel;
 941   
 942          proto_initialize_all_prefixes();
 943           
 944      window = dlg_conf_window_new("Wireshark: Filter Expression");
 945      gtk_window_set_default_size(GTK_WINDOW(window), 500, 400);
 946      gtk_container_set_border_width(GTK_CONTAINER(window), 5);
 947   
 948      main_vb = gtk_vbox_new(FALSE, 5);
 949      gtk_container_set_border_width(GTK_CONTAINER(main_vb), 5);
 950      gtk_container_add(GTK_CONTAINER(window), main_vb);
 951   
 952      main_hb = gtk_hbox_new(FALSE, 5);
 953      gtk_container_set_border_width(GTK_CONTAINER(main_hb), 5);
 954      gtk_container_add(GTK_CONTAINER(main_vb), main_hb);
 955   
 956      field_vb = gtk_vbox_new(FALSE, 5);
 957      gtk_container_set_border_width(GTK_CONTAINER(field_vb), 5);
 958      gtk_container_add(GTK_CONTAINER(main_hb), field_vb);
 959   
 960      field_tree_lb = gtk_label_new("Field name");
 961      gtk_misc_set_alignment(GTK_MISC(field_tree_lb), 0.0f, 0.0f);
 962      gtk_box_pack_start(GTK_BOX(field_vb), field_tree_lb, FALSE, FALSE, 0);
 963   
 964      tree_scrolled_win = scrolled_window_new(NULL, NULL);
 965      gtk_scrolled_window_set_shadow_type(GTK_SCROLLED_WINDOW(tree_scrolled_win),
 966                                     GTK_SHADOW_IN);
 967      gtk_box_pack_start(GTK_BOX(field_vb), tree_scrolled_win, TRUE, TRUE, 0);
 968      gtk_widget_set_size_request(tree_scrolled_win, 300, -1);
 969   
 970   
 971      store = gtk_tree_store_new(2, G_TYPE_STRING, G_TYPE_POINTER);
 972      field_tree = tree_view_new(GTK_TREE_MODEL(store));
 973      gtk_tree_view_set_headers_visible(GTK_TREE_VIEW(field_tree), FALSE);
 974      selection = gtk_tree_view_get_selection(GTK_TREE_VIEW(field_tree));
 975      gtk_tree_selection_set_mode(selection, GTK_SELECTION_BROWSE);
 976      renderer = gtk_cell_renderer_text_new();
 977      column = gtk_tree_view_column_new_with_attributes("Field name", renderer,
 978                                                        "text", 0, NULL);
 979      gtk_tree_view_append_column(GTK_TREE_VIEW(field_tree), column);
 980      gtk_tree_view_column_set_sizing(column, GTK_TREE_VIEW_COLUMN_AUTOSIZE);
 981      gtk_tree_view_column_set_sort_column_id(column, 0);
 982      g_signal_connect(selection, "changed", G_CALLBACK(field_select_row_cb), field_tree);
 983      gtk_container_add(GTK_CONTAINER(tree_scrolled_win), field_tree);
 984   
 985      relation_vb = gtk_vbox_new(FALSE, 5);
 986      gtk_container_set_border_width(GTK_CONTAINER(relation_vb), 5);
 987      gtk_container_add(GTK_CONTAINER(main_hb), relation_vb);
 988   
 989      relation_label = gtk_label_new("Relation");
 990      gtk_misc_set_alignment(GTK_MISC(relation_label), 0.0f, 0.0f);
 991      gtk_box_pack_start(GTK_BOX(relation_vb), relation_label, FALSE, FALSE, 0);
 992   
 993      relation_list_scrolled_win = scrolled_window_new(NULL, NULL);
 994      /* never use a scrollbar in x direction, show the complete relation string */
 995      gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(relation_list_scrolled_win),
 996                                     GTK_POLICY_NEVER, GTK_POLICY_AUTOMATIC);
 997      gtk_scrolled_window_set_shadow_type(GTK_SCROLLED_WINDOW(relation_list_scrolled_win),
 998                                     GTK_SHADOW_IN);
 999   
 1000      l_store = gtk_list_store_new(1, G_TYPE_STRING);
 1001      relation_list = tree_view_new(GTK_TREE_MODEL(l_store));
 1002      gtk_tree_view_set_headers_visible(GTK_TREE_VIEW(relation_list), FALSE);
 1003      g_object_unref(G_OBJECT(l_store));
 1004      renderer = gtk_cell_renderer_text_new();
 1005      column = gtk_tree_view_column_new_with_attributes("relation", renderer,
 1006                                                        "text", 0, NULL);
 1007      gtk_tree_view_append_column(GTK_TREE_VIEW(relation_list), column);
 1008      l_sel = gtk_tree_view_get_selection(GTK_TREE_VIEW(relation_list));
 1009      gtk_tree_selection_set_mode(l_sel, GTK_SELECTION_BROWSE);
 1010      gtk_container_add(GTK_CONTAINER(relation_list_scrolled_win), relation_list);
 1011      gtk_box_pack_start(GTK_BOX(relation_vb), relation_list_scrolled_win, TRUE, TRUE, 0);
 1012   
 1013      /*
 1014       * OK, show the relation label and range stuff as it would be 
 1015       * with everything turned on, so it'll request as much space
 1016       * as it'll ever need, so the dialog box and widgets start out
 1017       * with the right sizes.
 1018       *
 1019       * XXX - this doesn't work.  It *doesn't* request as much space
 1020       * as it'll ever need.
 1021       *
 1022       * XXX - FT_UINT8 doesn't support ranges, so even if it did work,
 1023       * it wouldn't work right.
 1024       *
 1025       * XXX - this no longer affects the range stuff, as that's
 1026       * controlled both by the type and by the relational operator
 1027       * selected.
 1028       */
 1029      show_relations(relation_list, FT_UINT8);
 1030   
 1031      /*
 1032      relation_present_rb = gtk_radio_button_new_with_mnemonic_from_widget(NULL, "is present");
 1033      gtk_box_pack_start(GTK_BOX(relation_vb), relation_present_rb, FALSE, FALSE, 0);
 1034   
 1035      relation_equals_rb = gtk_radio_button_new_with_mnemonic_from_widget(GTK_RADIO_BUTTON(relation_present_rb), "==");
 1036      gtk_box_pack_start(GTK_BOX(relation_vb), relation_equals_rb, FALSE, FALSE, 0);
 1037   
 1038      relation_unequals_rb = gtk_radio_button_new_with_mnemonic_from_widget(GTK_RADIO_BUTTON(relation_present_rb), "!=");
 1039      gtk_box_pack_start(GTK_BOX(relation_vb), relation_unequals_rb, FALSE, FALSE, 0);
 1040
1049
Show [ Lines 1040 to 1049 omitted. ]
 1050      relation_lessequal_rb = gtk_radio_button_new_with_mnemonic_from_widget(GTK_RADIO_BUTTON(relation_present_rb), "<=");
 1051      gtk_box_pack_start(GTK_BOX(relation_vb), relation_lessequal_rb, FALSE, FALSE, 0);
 1052   
 1053      relation_contains_rb = gtk_radio_button_new_with_mnemonic_from_widget(GTK_RADIO_BUTTON(relation_present_rb), "contains");
 1054      gtk_box_pack_start(GTK_BOX(relation_vb), relation_contains_rb, FALSE, FALSE, 0);
 1055   
 1056      relation_matches_rb = gtk_radio_button_new_with_mnemonic_from_widget(GTK_RADIO_BUTTON(relation_present_rb), "matches");
 1057      gtk_box_pack_start(GTK_BOX(relation_vb), relation_matches_rb, FALSE, FALSE, 0);
 1058  */
 1059      /* value column */
 1060      value_vb = gtk_vbox_new(FALSE, 5);
 1061      gtk_container_set_border_width(GTK_CONTAINER(value_vb), 5);
 1062      gtk_container_add(GTK_CONTAINER(main_hb), value_vb);
 1063   
 1064      value_label = gtk_label_new("Value");
 1065      gtk_misc_set_alignment(GTK_MISC(value_label), 0.0f, 0.0f);
 1066      gtk_box_pack_start(GTK_BOX(value_vb), value_label, FALSE, FALSE, 0);
 1067   
 1068      value_entry = gtk_entry_new();
 1069      gtk_box_pack_start(GTK_BOX(value_vb), value_entry, FALSE, FALSE, 0);
 1070   
 1071      value_list_label = gtk_label_new("Predefined values:");
 1072      gtk_misc_set_alignment(GTK_MISC(value_list_label), 0.0f, 0.0f);
 1073      gtk_box_pack_start(GTK_BOX(value_vb), value_list_label, FALSE, FALSE, 0);
 1074   
 1075      value_list_scrolled_win = scrolled_window_new(NULL, NULL);
 1076      gtk_box_pack_start(GTK_BOX(value_vb), value_list_scrolled_win, TRUE,
 1077                         TRUE, 0);
 1078   
 1079      l_store = gtk_list_store_new(2, G_TYPE_STRING, G_TYPE_POINTER);
 1080      value_list = tree_view_new(GTK_TREE_MODEL(l_store));
 1081      gtk_tree_view_set_headers_visible(GTK_TREE_VIEW(value_list), FALSE);
 1082      g_object_unref(G_OBJECT(l_store));
 1083      renderer = gtk_cell_renderer_text_new();
 1084      column = gtk_tree_view_column_new_with_attributes("value", renderer,
 1085                                                        "text", 0, NULL);
 1086      gtk_tree_view_append_column(GTK_TREE_VIEW(value_list), column);
 1087      g_signal_connect(gtk_tree_view_get_selection(GTK_TREE_VIEW(value_list)),
 1088                     "changed", G_CALLBACK(value_list_sel_cb), value_entry);
 1089   
 1090      /*
 1091       * The value stuff may be hidden or shown depending on what 
 1092       * relation was selected; connect to the "changed" signal 
 1093       * for the relation list, so we can make that happen.
 1094       */
 1095      g_signal_connect(gtk_tree_view_get_selection(GTK_TREE_VIEW(relation_list)),
 1096                     "changed", G_CALLBACK(relation_list_sel_cb), NULL);
 1097      l_sel = gtk_tree_view_get_selection(GTK_TREE_VIEW(value_list));
 1098      gtk_tree_selection_set_mode(l_sel, GTK_SELECTION_SINGLE);
 1099      gtk_scrolled_window_add_with_viewport(GTK_SCROLLED_WINDOW(value_list_scrolled_win),
 1100                                            value_list);
 1101      /* This remains hidden until an enumerated field is selected */
 1102   
 1103      /*
 1104       * Put the items in the Tree; we don't want to do that until 
 1105       * we've constructed the value list and set the tree's
 1106       * E_DFILTER_EXPR_VALUE_LIST_KEY data to point to it, and 
 1107       * constructed the "Accept" button and set the tree's
 1108       * E_DFILTER_EXPR_OK_BT_KEY data to point to it, so that
 1109       * when the list item is "helpfully" automatically selected for us
 1110       * we're ready to cope with the selection signal.
 1111       */
 1112   
 1113  {
 1114      /* GTK2 code using two levels iterator to enumerate all protocol fields */
 1115   
 1116      GtkTreeIter iter, child_iter;
 1117      void *cookie, *cookie2;
 1118   
 1119[+]     for (i = proto_get_first_protocol(&cookie); i != -1;
 1120           i = proto_get_next_protocol(&cookie)) {
 1121          char *strp, str[TAG_STRING_LEN+1];
 1122   
 1123[+]         protocol = find_protocol_by_id(i);
 1124   
 1125[+]         if (!proto_is_protocol_enabled(protocol)) {
expand/collapse

proto_is_protocol_enabled

(/home/sate/Testcases/c/cve/wireshark-1.2.0/epan/proto.c)expand/collapse
Show more  
 3696  proto_is_protocol_enabled(protocol_t *protocol)
 3697  {
 3698          return protocol->is_enabled;
Show more  
Show more  




Change Warning 4020.30646 : Null Pointer Dereference

Priority:
State:
Finding:
Owner:
Note: