Make sure our prefix length is > 0 before lopping off the last
authorgerald <gerald@f5534014-38df-0310-8fa8-9805f1628bb7>
Thu, 27 May 2010 00:49:01 +0000 (00:49 +0000)
committergerald <gerald@f5534014-38df-0310-8fa8-9805f1628bb7>
Thu, 27 May 2010 00:49:01 +0000 (00:49 +0000)
character.  Fixes bug 4797.

git-svn-id: http://anonsvn.wireshark.org/wireshark/trunk@32987 f5534014-38df-0310-8fa8-9805f1628bb7

gtk/filter_autocomplete.c

index f72ba99ffc7ee2d57d0532a19df0898da193b80c..1fa3cd5096572ce2e3de009633a343cae35d7b8a 100644 (file)
@@ -382,7 +382,7 @@ filter_string_te_key_pressed_cb(GtkWidget *filter_te, GdkEventKey *event)
     }
     return FALSE;
   }
-
+  
   /* Let prefix points to the first char that is not aphanumeric,'.', '_' or '-',
    * start from the end of filter_te_str.
    **/
@@ -772,16 +772,20 @@ filter_autocomplete_handle_backspace(GtkWidget *filter_te, GtkWidget *list, GtkW
   size_t prefix_len;
   gboolean protocols_only = FALSE;
 
-  /* Delete the last character in the prefix string */
-  prefix_len = strlen(prefix)-1;
-  prefix[prefix_len] = '\0';
+  prefix_len = strlen(prefix);
 
-  if (prefix_len == 0) {
+  if (prefix_len < 1) {
     /* Remove the popup window for protocols */
     gtk_widget_destroy(popup_win);
     g_object_set_data(G_OBJECT(main_win), E_FILT_AUTOCOMP_PTR_KEY, NULL);
     return;
-  } else if(strchr(prefix, '.') == NULL) {
+  }
+
+  /* Delete the last character in the prefix string */
+  prefix_len--;
+  prefix[prefix_len] = '\0';
+
+  if(strchr(prefix, '.') == NULL) {
     protocols_only = TRUE;
   }