Exemplo n.º 1
0
/* This function inits the counters */
void destroy_counters(void)
{
	sd.changes = 0UL;
	sd.crypto = 0UL;
	sd.acct_changes = 0UL;
	sd.good_logins = 0UL;
	sd.bad_logins = 0UL;
	sd.good_auth = 0UL;
	sd.bad_auth = 0UL;
	sd.events = 0UL;
	sd.avcs = 0UL;
	sd.mac = 0UL;
	sd.failed_syscalls = 0UL;
	sd.anomalies = 0UL;
	sd.responses = 0UL;
	slist_clear(&sd.users);
	slist_clear(&sd.terms);
	slist_clear(&sd.files);
	slist_clear(&sd.hosts);
	slist_clear(&sd.exes);
	slist_clear(&sd.avc_objs);
	slist_clear(&sd.keys);
	ilist_clear(&sd.pids);
	ilist_clear(&sd.sys_list);
	ilist_clear(&sd.anom_list);
	ilist_create(&sd.mac_list);
	ilist_clear(&sd.resp_list);
	ilist_create(&sd.crypto_list);
}
Exemplo n.º 2
0
/**
   Ordered local closest node lookup
   @return k neighbors in a list
*/
struct ilist*
KDA_Closest(KDA_ID object_id)
{
  NOTE_FX(object_id);

  struct ilist* result = ilist_create();

  int d = XOR(self->id, object_id);
  ilist_add(result, d, self);

  for (int i = 0; i < KDA_SPACE_SIZE; i++)
  {
    for (struct list_item* item = k_bucket[i]->head;
         item; item = item->next)
    {
      KDA_Neighbor* neighbor = (KDA_Neighbor*) item->data;
      d = XOR(neighbor->id, object_id);
      if (result->size < k)
      {
        ilist_ordered_insert(result, d, neighbor);
      }
      else if (d < result->tail->key)
      {
        ilist_ordered_insert(result, d, neighbor);
        ilist_pop(result);
      }
    }
  }
  return result;
}
Exemplo n.º 3
0
int main(void)
{
	int i = 0;
	ilist e;
	int_node *node;

	ilist_create(&e);

	ilist_add_if_uniq(&e, 6, 0);
	ilist_add_if_uniq(&e, 5, 0);
	ilist_add_if_uniq(&e, 7, 0);
	ilist_add_if_uniq(&e, 1, 0);
	ilist_add_if_uniq(&e, 8, 0);
	ilist_add_if_uniq(&e, 2, 0);
	ilist_add_if_uniq(&e, 9, 0);
	ilist_add_if_uniq(&e, 0, 0);
	ilist_add_if_uniq(&e, 4, 0);
	ilist_add_if_uniq(&e, 3, 0);

	ilist_first(&e);
	do {
		node = ilist_get_cur(&e);
		if (i != node->num) {
			printf("Test failed - i:%d != num:%d\n", i, node->num);
			return 1;
		}
		i++;
	} while ((node = ilist_next(&e)));
	
	ilist_clear(&e);
	printf("ilist test passed\n");
	return 0;
}
Exemplo n.º 4
0
static int convert_str_to_msg(const char *optarg)
{
	int tmp, retval = 0;

	if (isdigit(optarg[0])) {
		errno = 0;
		tmp = strtoul(optarg, NULL, 10);
		if (errno) {
	       		fprintf(stderr, 
			"Numeric message type conversion error (%s) for %s\n",
				strerror(errno), optarg);
			retval = -1;
		}
	} else {
		tmp = audit_name_to_msg_type(optarg);
		if (tmp < 0) 
		        retval = -1;
	}
	if (retval == 0) {
		if (event_type == NULL) {
			event_type = malloc(sizeof(ilist));
			if (event_type == NULL)
				return -1;
			ilist_create(event_type);
		}
		ilist_append(event_type, tmp, 1, 0);
	}
	return retval;
}
Exemplo n.º 5
0
/*
 * Set everything to its default value
*/
void clear_config(prelude_conf_t *config)
{
	config->profile = strdup("auditd");
	config->avcs = E_YES;
	config->avcs_act = A_IDMEF;
	config->logins = E_YES;
	config->logins_act = A_IDMEF;
	config->login_failure_max = E_YES;
	config->login_failure_max_act = A_IDMEF;
	config->login_session_max = E_YES;
	config->login_session_max_act = A_IDMEF;
	config->login_location = E_YES;
	config->login_location_act = A_IDMEF;
	config->login_time = E_YES;
	config->login_time_act = A_IDMEF;
	config->abends = E_YES;
	config->abends_act = A_IDMEF;
	config->promiscuous = E_YES;
	config->promiscuous_act = A_IDMEF;
	config->mac_status = E_YES;
	config->mac_status_act = A_IDMEF;
	config->group_auth = E_YES;
	config->group_auth_act = A_IDMEF;
	config->watched_acct = E_YES;
	config->watched_acct_act = A_IDMEF;
	config->watched_syscall = E_YES;
	config->watched_syscall_act = A_IDMEF;
	config->watched_file = E_YES;
	config->watched_file_act = A_IDMEF;
	config->watched_exec = E_YES;
	config->watched_exec_act = A_IDMEF;
	config->watched_mk_exe = E_YES;
	config->watched_mk_exe_act = A_IDMEF;
	config->tty = E_NO;
	config->tty_act = A_IDMEF;
	ilist_create(&config->watched_accounts);
}
Exemplo n.º 6
0
int main(void)
{
	int i = 0;
	ilist e;
	int_node *node;

	ilist_create(&e);

	// This first test checks to see if list is 
	// created in a numeric order
	ilist_add_if_uniq(&e, 6, 0);
	ilist_add_if_uniq(&e, 5, 0);
	ilist_add_if_uniq(&e, 7, 0);
	ilist_add_if_uniq(&e, 1, 0);
	ilist_add_if_uniq(&e, 8, 0);
	ilist_add_if_uniq(&e, 2, 0);
	ilist_add_if_uniq(&e, 9, 0);
	ilist_add_if_uniq(&e, 0, 0);
	ilist_add_if_uniq(&e, 4, 0);
	ilist_add_if_uniq(&e, 3, 0);

	ilist_first(&e);
	do {
		node = ilist_get_cur(&e);
		if (i != node->num) {
			printf("Test failed - i:%d != num:%d\n", i, node->num);
			return 1;
		}
		i++;
	} while ((node = ilist_next(&e)));

	ilist_clear(&e);
	puts("starting sort test");

	// Now test to see if the sort function works
	// Fill the list exactly backwards
	ilist_add_if_uniq(&e, 3, 0);
	ilist_add_if_uniq(&e, 3, 0);
	ilist_add_if_uniq(&e, 4, 0);
	ilist_add_if_uniq(&e, 3, 0);
	ilist_add_if_uniq(&e, 4, 0);
	ilist_add_if_uniq(&e, 2, 0);
	ilist_add_if_uniq(&e, 4, 0);
	ilist_add_if_uniq(&e, 2, 0);
	ilist_add_if_uniq(&e, 4, 0); 
	ilist_add_if_uniq(&e, 1, 0);

	ilist_sort_by_hits(&e);

	i = 0;
	ilist_first(&e);
	do {
		node = ilist_get_cur(&e);
		if (node->hits != (4-i)) {
			printf("Sort test failed - i:%d != ihits:%d\n", i, node->hits);
			return 1;
		}
		i++;
	} while ((node = ilist_next(&e)));
	
	ilist_clear(&e);

	printf("ilist tests passed\n");
	return 0;
}