]> jfr.im git - irc/evilnet/x3.git/blobdiff - src/global.c
fixing giveownership logs access to invalid memory address after free
[irc/evilnet/x3.git] / src / global.c
index 63702a658a55460788ea8e81f7d0657e9d251d73..6b183816b6b9be3e64255f3388672e2b365b3a22 100644 (file)
@@ -81,6 +81,8 @@ static const struct message_entry msgtab[] = {
     { "HSMSG_BOT_REGISTERED", "HelpServ %s (%s) registered to %s by %s." },
     { "HSMSG_BOT_EXPIRED", "HelpServ %s (%s) expired at request of %s." },
     { "HSMSG_BOT_UNREGISTERED", "HelpServ %s (%s) unregistered by %s." },
+    { "HSMSG_SUSPENDED_BY", "%s suspended by %s. (HelpServ)" },
+    { "HSMSG_UNSUSPENDED_BY", "%s unsuspended by %s. (HelpServ)" },
 
     /* nickserv.c */
     { "NSMSG_ACCOUNT_RENAMED", "%s renamed account %s to %s." },
@@ -403,7 +405,7 @@ message_send(struct globalMessage *message)
 void
 global_message_args(long targets, const char *language_entry, ...)
 {
-    struct globalMessage *message;
+    struct globalMessage *message = NULL;
     va_list arg_list;
     dict_iterator_t it;
     char response[MAXLEN];
@@ -424,6 +426,9 @@ global_message_args(long targets, const char *language_entry, ...)
         vsnprintf(response, MAXLEN-2, language_entry, arg_list);
         response[MAXLEN-1] = 0;
 
+        if (message)
+            message_del(message);
+
         message = message_add(targets | MESSAGE_OPTION_SOURCELESS, now, 0, "", response);
         if (!message)
            continue;