Merge fixes from jennifer/filter-dev branch
authorJennifer Richards <jennifer@painless-security.com>
Tue, 11 Jul 2017 15:01:57 +0000 (11:01 -0400)
committerJennifer Richards <jennifer@painless-security.com>
Tue, 11 Jul 2017 15:01:57 +0000 (11:01 -0400)
include/tr_filter.h
tr/internal.cfg
trp/trps.c

index 9e556f4..45b8fdc 100644 (file)
@@ -46,7 +46,7 @@
 #define TR_MAX_FILTERS  5
 #define TR_MAX_FILTER_LINES 8
 #define TR_MAX_FILTER_SPECS 8
-#define TR_MAX_FILTER_SPEC_MATCHES 8
+#define TR_MAX_FILTER_SPEC_MATCHES 64
 
 /* Filter actions */
 typedef enum {
index 7bfe0f5..eef0f61 100644 (file)
@@ -2,8 +2,8 @@
   "tr_internal": {
     "max_tree_depth": 12,
     "hostname":"beta.example.com",
-    "trps_port":25308,
-    "tids_port":25309,
+    "trps_port":12308,
+    "tids_port":12309,
     "cfg_poll_interval": 1,
     "cfg_settling_time": 5,
     "trp_sweep_interval": 30,
index 1dd1f6c..9d217f2 100644 (file)
@@ -1707,13 +1707,14 @@ static void trps_filter_outbound_updates(TR_FILTER_SET *filters, GPtrArray *upda
   TRP_UPD *upd=NULL;
   guint ii=0;
 
-  /* walk backward through the array so we can remove elements */
-  for (ii=updates->len-1; ii>=0; ii--) {
-    upd=g_ptr_array_index(updates, ii);
+  /* Walk backward through the array so we can remove elements. Careful about loop
+   * termination - remember that ii is unsigned. */
+  for (ii=updates->len; ii>0; ii--) {
+    upd=g_ptr_array_index(updates, ii-1);
     trps_filter_one_outbound_update(tr_filter_set_get(filters, TR_FILTER_TYPE_TRP_OUTBOUND), upd);
     /* see if we removed all the records from this update */
     if (trp_upd_num_inforecs(upd)==0)
-      g_ptr_array_remove_index_fast(updates, ii); /* does not preserve order at index ii or higher */
+      g_ptr_array_remove_index_fast(updates, ii-1); /* does not preserve order at index ii or higher */
   }
 }