facility_t *f;
mowgli_dictionary_iteration_state_t state;
+ /* If the user has already been killed, don't try to do anything */
+ if (!u)
+ return;
+
int blocked = 0, throttled = 0, blacklisted = 0;
char *blockmessage = NULL, *throttlemessage = NULL;
facility_cloak_type cloak = facility_cloak_none;
throttling_facility->hostpart);
}
syn_kill2(u, "Throttled", "%s", throttlemessage);
+ data->u = NULL;
return;
}
u->nick, blocking_facility ? blocking_facility->hostpart : "(unknown)");
}
syn_kill2(u, "Facility Blocked", "%s", blockmessage);
+ data->u = NULL;
return;
}
u->nick, blocking_facility->hostpart, blocking_regex);
}
syn_kill(u, "%s", blockmessage);
+ data->u = NULL;
return;
}
user_t *u = data->u;
kline_t *k = NULL;
+ /* If the user has already been killed, don't try to do anything */
+ if (!u)
+ return;
+
char *ident = u->user;
if (*ident == '~')
++ident;
{
syn_report("Killing user %s; hex ident matches K:line [%s@%s] (%s)", u->nick, k->user, k->host, k->reason);
syn_kill(u, "Your reported IP [%s] is banned: %s", identhost, k->reason);
+ data->u = NULL;
return;
}
{
syn_report("Killing user %s; realname host matches K:line [%s@%s] (%s)", u->nick, k->user, k->host, k->reason);
syn_kill(u, "Your reported hostname [%s] is banned: %s", gecos, k->reason);
+ data->u = NULL;
return;
}
else if ((k = syn_find_kline(NULL, p)))
{
syn_report("Killing user %s; realname host matches K:line [%s@%s] (%s)", u->nick, k->user, k->host, k->reason);
syn_kill(u, "Your reported hostname [%s] is banned: %s", p, k->reason);
+ data->u = NULL;
return;
}
{
user_t *u = data->u;
+ /* If the user has already been killed, don't try to do anything */
+ if (!u)
+ return;
+
char nuh[NICKLEN+USERLEN+HOSTLEN+GECOSLEN];
snprintf(nuh, sizeof(nuh), "%s!%s@%s %s", u->nick, u->user, u->host, u->gecos);
syn_report("Killing client %s(%s@%s) due to lethal mask %s",
u->nick, u->user, u->host, blocked_regex);
syn_kill_or_kline(u, lethal_mask_duration, lethal_mask_message);
+ data->u = NULL;
return;
}
{
user_t *u = data->u;
+ /* If the user has already been killed, don't try to do anything */
+ if (!u)
+ return;
+
if (is_internal_client(u) || *u->ip == '\0')
return;