From: ThiefMaster Date: Tue, 1 Sep 2009 21:29:27 +0000 (+0200) Subject: Reject ident@host fakehost osets if the setter lacks access to fake idents X-Git-Url: http://git.pk910.de/?a=commitdiff_plain;h=f97cb6a4f33052feadce6abfc6cd80c6559b4a98;p=srvx.git Reject ident@host fakehost osets if the setter lacks access to fake idents instead of setting the full ident@host as a fakehost (real@fake@fake). --- diff --git a/src/nickserv.c b/src/nickserv.c index 1192c24..1f6bf22 100644 --- a/src/nickserv.c +++ b/src/nickserv.c @@ -2636,8 +2636,9 @@ static OPTION_FUNC(opt_fakehost) if ((argc > 1) && oper_has_access(user, nickserv, nickserv_conf.set_fakehost_level, 0)) { safestrncpy(mask, argv[1], sizeof(mask)); - if ((host = strrchr(mask, '@')) && host != mask && - oper_has_access(user, nickserv, nickserv_conf.set_fakeident_level, 0)) { + if ((host = strrchr(mask, '@')) && host != mask) { + if(!oper_has_access(user, nickserv, nickserv_conf.set_fakeident_level, 0)) + goto no_access; ident = mask; *host++ = '\0'; } else { @@ -2679,6 +2680,7 @@ static OPTION_FUNC(opt_fakehost) apply_fakehost(hi, NULL); } else { +no_access: host = generate_fakehost(hi); ident = generate_fakeident(hi, NULL); }