From 9319a2e206d3790e4e8ea04a71201d52e4b6a756 Mon Sep 17 00:00:00 2001 From: Keith Buck Date: Fri, 30 Dec 2011 17:29:58 +0000 Subject: [PATCH] Remove double-quote restriction on dline, kline, resv, and xline reasons; remove colon restriction on xline reasons. --- modules/m_dline.c | 31 +++---------------------------- modules/m_kline.c | 35 ++++++++--------------------------- modules/m_resv.c | 12 ------------ modules/m_xline.c | 12 ------------ 4 files changed, 11 insertions(+), 79 deletions(-) diff --git a/modules/m_dline.c b/modules/m_dline.c index f3a40cea..1330a123 100644 --- a/modules/m_dline.c +++ b/modules/m_dline.c @@ -64,7 +64,6 @@ mapi_clist_av1 dline_clist[] = { &dline_msgtab, &undline_msgtab, NULL }; DECLARE_MODULE_AV1(dline, NULL, NULL, dline_clist, NULL, NULL, "$Revision$"); -static int valid_comment(char *comment); static int remove_temp_dline(struct ConfItem *); static int apply_dline(struct Client *, const char *, int, char *); static int apply_undline(struct Client *, const char *); @@ -257,14 +256,6 @@ apply_dline(struct Client *source_p, const char *dlhost, int tdline_time, char * } } - if(!valid_comment(reason)) - { - sendto_one(source_p, - ":%s NOTICE %s :Invalid character '\"' in comment", - me.name, source_p->name); - return 0; - } - if(ConfigFileEntry.non_redundant_klines) { if((aconf = find_dline((struct sockaddr *) &daddr, t)) != NULL) @@ -298,6 +289,9 @@ apply_dline(struct Client *source_p, const char *dlhost, int tdline_time, char * aconf->passwd = rb_strdup(reason); aconf->info.oper = operhash_add(get_oper_name(source_p)); + if(strlen(reason) > BANREASONLEN) + reason[BANREASONLEN] = '\0'; + /* Look for an oper reason */ if((oper_reason = strchr(reason, '|')) != NULL) { @@ -409,25 +403,6 @@ apply_undline(struct Client *source_p, const char *cidr) return 0; } -/* - * valid_comment - * inputs - pointer to client - * - pointer to comment - * output - 0 if no valid comment, 1 if valid - * side effects - NONE - */ -static int -valid_comment(char *comment) -{ - if(strchr(comment, '"')) - return 0; - - if(strlen(comment) > BANREASONLEN) - comment[BANREASONLEN] = '\0'; - - return 1; -} - /* remove_temp_dline() * * inputs - confitem to undline diff --git a/modules/m_kline.c b/modules/m_kline.c index 373fdfbd..f445ec6a 100644 --- a/modules/m_kline.c +++ b/modules/m_kline.c @@ -69,7 +69,6 @@ DECLARE_MODULE_AV1(kline, NULL, NULL, kline_clist, NULL, NULL, "$Revision$"); /* Local function prototypes */ static int find_user_host(struct Client *source_p, const char *userhost, char *user, char *host); -static int valid_comment(struct Client *source_p, char *comment); static int valid_user_host(struct Client *source_p, const char *user, const char *host); static void handle_remote_kline(struct Client *source_p, int tkline_time, @@ -166,8 +165,7 @@ mo_kline(struct Client *client_p, struct Client *source_p, int parc, const char (tkline_time > 0) ? SHARED_TKLINE : SHARED_PKLINE, CAP_KLN, "%lu %s %s :%s", tkline_time, user, host, reason); - if(!valid_user_host(source_p, user, host) || - !valid_comment(source_p, reason)) + if(!valid_user_host(source_p, user, host)) return 0; if(!valid_wild_card(user, host)) @@ -197,6 +195,9 @@ mo_kline(struct Client *client_p, struct Client *source_p, int parc, const char aconf->port = 0; aconf->info.oper = operhash_add(get_oper_name(source_p)); + if(strlen(reason) > BANREASONLEN) + reason[BANREASONLEN] = '\0'; + /* Look for an oper reason */ if((oper_reason = strchr(reason, '|')) != NULL) { @@ -287,8 +288,7 @@ handle_remote_kline(struct Client *source_p, int tkline_time, (tkline_time > 0) ? SHARED_TKLINE : SHARED_PKLINE)) return; - if(!valid_user_host(source_p, user, host) || - !valid_comment(source_p, reason)) + if(!valid_user_host(source_p, user, host)) return; if(!valid_wild_card(user, host)) @@ -311,6 +311,9 @@ handle_remote_kline(struct Client *source_p, int tkline_time, aconf->host = rb_strdup(host); aconf->info.oper = operhash_add(get_oper_name(source_p)); + if(strlen(reason) > BANREASONLEN) + reason[BANREASONLEN] = '\0'; + /* Look for an oper reason */ if((oper_reason = strchr(reason, '|')) != NULL) { @@ -698,28 +701,6 @@ valid_user_host(struct Client *source_p, const char *luser, const char *lhost) return 1; } -/* - * valid_comment - * inputs - pointer to client - * - pointer to comment - * output - 0 if no valid comment, 1 if valid - * side effects - NONE - */ -static int -valid_comment(struct Client *source_p, char *comment) -{ - if(strchr(comment, '"')) - { - sendto_one_notice(source_p, ":Invalid character '\"' in comment"); - return 0; - } - - if(strlen(comment) > BANREASONLEN) - comment[BANREASONLEN] = '\0'; - - return 1; -} - /* already_placed_kline() * * inputs - source to notify, user@host to check, tkline time diff --git a/modules/m_resv.c b/modules/m_resv.c index a94689b5..97f9edba 100644 --- a/modules/m_resv.c +++ b/modules/m_resv.c @@ -219,12 +219,6 @@ parse_resv(struct Client *source_p, const char *name, const char *reason, int te return; } - if(strchr(reason, '"')) - { - sendto_one_notice(source_p, ":Invalid character '\"' in comment"); - return; - } - aconf = make_conf(); aconf->status = CONF_RESV_CHANNEL; aconf->port = 0; @@ -293,12 +287,6 @@ parse_resv(struct Client *source_p, const char *name, const char *reason, int te return; } - if(strchr(reason, '"')) - { - sendto_one_notice(source_p, ":Invalid character '\"' in comment"); - return; - } - if(!valid_wild_card_simple(name)) { sendto_one_notice(source_p, diff --git a/modules/m_xline.c b/modules/m_xline.c index d1975ecd..ab348ac8 100644 --- a/modules/m_xline.c +++ b/modules/m_xline.c @@ -256,18 +256,6 @@ valid_xline(struct Client *source_p, const char *gecos, const char *reason) return 0; } - if(strchr(reason, ':') != NULL) - { - sendto_one_notice(source_p, ":Invalid character ':' in comment"); - return 0; - } - - if(strchr(reason, '"')) - { - sendto_one_notice(source_p, ":Invalid character '\"' in comment"); - return 0; - } - if(!valid_wild_card_simple(gecos)) { sendto_one_notice(source_p,