From 625102cacdfd1b8d6dcd1efbccc7fcc15a864370 Mon Sep 17 00:00:00 2001 From: Bram Matthys Date: Mon, 24 May 2010 12:01:07 +0000 Subject: [PATCH] - Fixed bug in CVS where the ban exempt (+e) handling was reversed: if a non-matching +e was present, one could walk through bans. Reported by tabrisnet (#0003909). Bug was caused by chained/stacked extbans. --- Changes | 3 +++ src/channel.c | 4 ++-- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/Changes b/Changes index 3f435f0c0..1dc23c985 100644 --- a/Changes +++ b/Changes @@ -1968,3 +1968,6 @@ - SVSMODE now triggers HOOKTYPE_UMODE_CHANGE and HOOKTYPE_REMOTE_CHANMODE. - Added chmode +r to HTML documentation. - ./Config now remembers extra/custom ./configure parameters. +- Fixed bug in CVS where the ban exempt (+e) handling was reversed: if a + non-matching +e was present, one could walk through bans. Reported by + tabrisnet (#0003909). Bug was caused by chained/stacked extbans. diff --git a/src/channel.c b/src/channel.c index b097245fc..5f1f8848a 100644 --- a/src/channel.c +++ b/src/channel.c @@ -590,8 +590,8 @@ Ban *is_banned_with_nick(aClient *sptr, aChannel *chptr, int type, char *nick) return NULL; } #else - if (!ban_check_mask(sptr, chptr, tmp2->banstr, type, 0)) - return NULL; + if (ban_check_mask(sptr, chptr, tmp2->banstr, type, 0)) + return NULL; /* except matched */ #endif } break; /* ban found and not on except */