Fixed invite string adding double free.
authorPekka Riikonen <priikone@silcnet.org>
Tue, 10 Dec 2002 19:48:29 +0000 (19:48 +0000)
committerPekka Riikonen <priikone@silcnet.org>
Tue, 10 Dec 2002 19:48:29 +0000 (19:48 +0000)
CHANGES
apps/silcd/server_util.c

diff --git a/CHANGES b/CHANGES
index 4698a724a1b0ebb972b81718c48e5323ffd6a3ac..fb53fc93d2ca1964665f4a44a79ed91fcd99a420 100644 (file)
--- a/CHANGES
+++ b/CHANGES
@@ -1,3 +1,8 @@
+Tue Dec 10 21:47:56 EET 2002  Pekka Riikonen <priikone@silcnet.org>
+
+       * Fixed double free in invite list adding code when adding
+         invite strings.  Affected file silcd/server_util.c.
+
 Fri Dec  6 17:40:24 EET 2002  Pekka Riikonen <priikone@silcnet.org>
 
        * More log printing during backup router protocol.  Affected
index 6e382e4e21f47359d709ce3484b9982633dc75b3..dead873a6d250037bff3b3c9a91a585e9a4acc0a 100644 (file)
@@ -1772,6 +1772,12 @@ bool silc_server_inviteban_match(SilcServer server, SilcHashTable list,
   return ret;
 }
 
+static void silc_server_inviteban_dummy_dest(void *key, void *context,
+                                            void *user_context)
+{
+  /* Nothing */
+}
+
 /* Process invite or ban information */
 
 void silc_server_inviteban_process(SilcServer server, SilcHashTable list,
@@ -1797,7 +1803,8 @@ void silc_server_inviteban_process(SilcServer server, SilcHashTable list,
        char *string = NULL;
        silc_hash_table_find(list, (void *)1,
                             NULL, (void **)&string);
-       silc_hash_table_del(list, (void *)1);
+       silc_hash_table_del_ext(list, (void *)1, NULL, NULL, NULL, NULL,
+                               silc_server_inviteban_dummy_dest, NULL);
        if (!string)
          string = silc_calloc(len + 2, sizeof(*string));
        else