[svn] Fix desyncs with very long extbans. Bans can now be upto 195 chars long.
This commit is contained in:
parent
5b87d08a05
commit
832942858c
10
ChangeLog
10
ChangeLog
|
@ -1,3 +1,13 @@
|
|||
jilles 2007/11/07 21:45:14 UTC (20071107-3578)
|
||||
Log:
|
||||
allocate_channel(): no need to truncate name, its only caller already does it
|
||||
furthermore, truncating here causes an inconsistent channel name
|
||||
|
||||
|
||||
Changes: Modified:
|
||||
+1 -1 trunk/src/channel.c (File Modified)
|
||||
|
||||
|
||||
jilles 2007/10/27 21:56:53 UTC (20071027-3574)
|
||||
Log:
|
||||
Fix a memory leak.
|
||||
|
|
|
@ -21,7 +21,7 @@
|
|||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
|
||||
* USA
|
||||
*
|
||||
* $Id: channel.h 2727 2006-11-09 23:48:45Z jilles $
|
||||
* $Id: channel.h 3580 2007-11-07 23:45:14Z jilles $
|
||||
*/
|
||||
|
||||
#ifndef INCLUDED_channel_h
|
||||
|
@ -93,7 +93,7 @@ struct membership
|
|||
unsigned long bants;
|
||||
};
|
||||
|
||||
#define BANLEN NICKLEN+USERLEN+HOSTLEN+6
|
||||
#define BANLEN 195
|
||||
struct Ban
|
||||
{
|
||||
char *banstr;
|
||||
|
|
|
@ -1 +1 @@
|
|||
#define SERNO "20071027-3574"
|
||||
#define SERNO "20071107-3578"
|
||||
|
|
|
@ -21,7 +21,7 @@
|
|||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
|
||||
* USA
|
||||
*
|
||||
* $Id: channel.c 3578 2007-11-07 21:45:14Z jilles $
|
||||
* $Id: channel.c 3580 2007-11-07 23:45:14Z jilles $
|
||||
*/
|
||||
|
||||
#include "stdinc.h"
|
||||
|
@ -109,8 +109,8 @@ allocate_ban(const char *banstr, const char *who)
|
|||
{
|
||||
struct Ban *bptr;
|
||||
bptr = BlockHeapAlloc(ban_heap);
|
||||
DupNString(bptr->banstr, banstr, BANLEN);
|
||||
DupNString(bptr->who, who, BANLEN);
|
||||
DupString(bptr->banstr, banstr);
|
||||
DupString(bptr->who, who);
|
||||
|
||||
return (bptr);
|
||||
}
|
||||
|
|
11
src/chmode.c
11
src/chmode.c
|
@ -22,7 +22,7 @@
|
|||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
|
||||
* USA
|
||||
*
|
||||
* $Id: chmode.c 3534 2007-07-14 13:34:50Z 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;
|
||||
|
||||
|
@ -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 */
|
||||
|
|
Loading…
Reference in New Issue