summaryrefslogtreecommitdiff
path: root/src/core
diff options
context:
space:
mode:
Diffstat (limited to 'src/core')
-rw-r--r--src/core/os_akill.c15
-rw-r--r--src/core/os_chankill.c3
2 files changed, 14 insertions, 4 deletions
diff --git a/src/core/os_akill.c b/src/core/os_akill.c
index 97a974e7f..1e41cb95a 100644
--- a/src/core/os_akill.c
+++ b/src/core/os_akill.c
@@ -138,11 +138,15 @@ int do_akill(User * u)
}
deleted = add_akill(u, mask, u->nick, expires, reason);
- if (deleted < 0)
+ if (deleted < 0) {
+ if (AddAkiller) {
+ free(reason);
+ }
return MOD_CONT;
- else if (deleted)
+ } else if (deleted) {
notice_lang(s_OperServ, u, OPER_AKILL_DELETED_SEVERAL,
deleted);
+ }
notice_lang(s_OperServ, u, OPER_AKILL_ADDED, mask);
if (WallOSAkill) {
@@ -175,9 +179,12 @@ int do_akill(User * u)
u->nick, mask, reason, buf);
}
- if (readonly)
+ if (readonly) {
notice_lang(s_OperServ, u, READ_ONLY_MODE);
-
+ }
+ if (AddAkiller) {
+ free(reason);
+ }
} else {
syntax_error(s_OperServ, u, "AKILL", OPER_AKILL_SYNTAX);
}
diff --git a/src/core/os_chankill.c b/src/core/os_chankill.c
index c391390e0..9a7bb19af 100644
--- a/src/core/os_chankill.c
+++ b/src/core/os_chankill.c
@@ -123,6 +123,9 @@ int do_chankill(User * u)
} else {
notice_lang(s_OperServ, u, CHAN_X_NOT_IN_USE, channel);
}
+ if (AddAkiller) {
+ free(reason);
+ }
} else {
syntax_error(s_OperServ, u, "CHANKILL", OPER_CHANKILL_SYNTAX);
}