From 1dbef111fbfa66aaeebc5a85bc19b5b79996d9cf Mon Sep 17 00:00:00 2001 From: Bram Matthys Date: Sun, 10 Feb 2019 17:08:47 +0100 Subject: [PATCH] Fix crash if receiving malformed server to server traffic (from an authenticated server): TKL deleting a spamfilter with insufficient parameters. --- src/modules/m_tkl.c | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/src/modules/m_tkl.c b/src/modules/m_tkl.c index b8ba09be5..e1acbfa23 100644 --- a/src/modules/m_tkl.c +++ b/src/modules/m_tkl.c @@ -2358,15 +2358,16 @@ int _m_tkl(aClient *cptr, aClient *sptr, int parc, char *parv[]) /* Broadcast removal to all other servers */ if (type & TKL_GLOBAL) { - if (parc < 8) + if ((parc > 8) && (type & TKL_SPAMF)) { - sendto_server(cptr, 0, 0, ":%s TKL %s %s %s%s %s %s", - sptr->name, parv[1], parv[2], (softban?"%":""), parv[3], parv[4], parv[5]); - } else { - /* spamfilter... */ + /* Spamfilter... */ sendto_server(cptr, 0, 0, ":%s TKL %s %s %s %s %s %s %s :%s", sptr->name, parv[1], parv[2], parv[3], parv[4], parv[5], parv[6], parv[7], reason); + } else { + /* Any other TKL (eg: gline) */ + sendto_server(cptr, 0, 0, ":%s TKL %s %s %s%s %s %s", + sptr->name, parv[1], parv[2], (softban?"%":""), parv[3], parv[4], parv[5]); } }