summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/operserv.c8
-rw-r--r--src/protocol/charybdis.c3
-rw-r--r--src/servers.c2
3 files changed, 12 insertions, 1 deletions
diff --git a/src/operserv.c b/src/operserv.c
index 6e2e7ce33..74a2377dc 100644
--- a/src/operserv.c
+++ b/src/operserv.c
@@ -809,6 +809,14 @@ int add_akill(User * u, char *mask, const char *by, const time_t expires,
*host = 0;
host++;
+ if (!*host)
+ {
+ if (u)
+ notice_lang(s_OperServ, u, BAD_USERHOST_MASK);
+ free(mask2);
+ return -1;
+ }
+
entry = scalloc(sizeof(Akill), 1);
if (!entry) {
diff --git a/src/protocol/charybdis.c b/src/protocol/charybdis.c
index ad6256d29..6a4399be0 100644
--- a/src/protocol/charybdis.c
+++ b/src/protocol/charybdis.c
@@ -873,6 +873,9 @@ void charybdis_cmd_remove_akill(char *user, char *host)
{
Uid *ud;
+ if (!user || !*user || !host || !*host)
+ return;
+
ud = find_uid(s_OperServ);
send_cmd((UseTS6 ? (ud ? ud->uid : s_OperServ) : s_OperServ),
"UNKLINE * %s %s", user, host);
diff --git a/src/servers.c b/src/servers.c
index 282409bea..efe039a24 100644
--- a/src/servers.c
+++ b/src/servers.c
@@ -243,7 +243,7 @@ static void delete_server(Server * serv, const char *quitreason)
serv->prev->next = serv->next;
if (serv->next)
serv->next->prev = serv->prev;
- if (serv->uplink->links == serv)
+ if (serv->uplink && serv->uplink->links == serv)
serv->uplink->links = serv->next;
if (debug)