X-Git-Url: https://jfr.im/git/irc/rqf/shadowircd.git/blobdiff_plain/94d53e53a43a2aa36a658c01f78abe9f3f9ddbfe..832942858cbc9d9f3d34caa7ea3be26d89360ee6:/src/chmode.c diff --git a/src/chmode.c b/src/chmode.c index 5fd0858..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 3530 2007-07-14 12:20:48Z 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; @@ -111,7 +111,7 @@ add_id(struct Client *source_p, struct Channel *chptr, const char *banid, DLINK_FOREACH(ptr, list->head) { actualBan = ptr->data; - if(match(actualBan->banstr, realban)) + if(mask_match(actualBan->banstr, realban)) return 0; } } @@ -615,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 */