X-Git-Url: https://jfr.im/git/irc/rqf/shadowircd.git/blobdiff_plain/117812536310fdecf96d4229114422c132f059fc..c98390004f4f14cd8215302d77313f81e2546e22:/src/chmode.c diff --git a/src/chmode.c b/src/chmode.c index e6e0b79..3f42a6f 100644 --- a/src/chmode.c +++ b/src/chmode.c @@ -22,7 +22,7 @@ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 * USA * - * $Id: chmode.c 3213 2007-02-21 19:52:51Z jilles $ + * $Id: chmode.c 3580 2007-11-07 23:45:14Z jilles $ */ #include "stdinc.h" @@ -92,7 +92,7 @@ add_id(struct Client *source_p, struct Channel *chptr, const char *banid, dlink_list * list, long mode_type) { struct Ban *actualBan; - static char who[BANLEN]; + static char who[USERHOST_REPLYLEN]; char *realban = LOCAL_COPY(banid); dlink_node *ptr; @@ -108,12 +108,10 @@ add_id(struct Client *source_p, struct Channel *chptr, const char *banid, return 0; } - collapse(realban); - DLINK_FOREACH(ptr, list->head) { actualBan = ptr->data; - if(match(actualBan->banstr, realban)) + if(mask_match(actualBan->banstr, realban)) return 0; } } @@ -617,8 +615,11 @@ chm_ban(struct Client *source_p, struct Channel *chptr, else mask = pretty_mask(raw_mask); - /* we'd have problems parsing this, hyb6 does it too */ - if(strlen(mask) > (MODEBUFLEN - 2)) + /* we'd have problems parsing this, hyb6 does it too + * also make sure it will always fit on a line with channel + * name etc. + */ + if(strlen(mask) > IRCD_MIN(BANLEN, MODEBUFLEN - 5)) return; /* if we're adding a NEW id */