Avoid overwriting part of a server-set ban's banstr field.
[ircu2.10.12-pk.git] / ircd / channel.c
index fcf1d3a4e1818edce15ababf3f88a3968199be73..04d92997dc003d90c09c406ded60357f598b45e4 100644 (file)
@@ -2819,7 +2819,7 @@ mode_parse_ban(struct ParseState *state, int *flag_p)
   newban->flags = ((state->dir == MODE_ADD) ? BAN_ADD : BAN_DEL)
       | (*flag_p == MODE_BAN ? 0 : BAN_EXCEPTION);
   set_ban_mask(newban, collapse(pretty_mask(t_str)));
-  ircd_strncpy(newban->who, cli_name(state->sptr), HOSTLEN);
+  ircd_strncpy(newban->who, IsUser(state->sptr) ? cli_name(state->sptr) : "*", NICKLEN);
   newban->when = TStime();
   apply_ban(&state->chptr->banlist, newban, 0);
 }