From c988af4150dba4d429496fe5e36fd219377a0935 Mon Sep 17 00:00:00 2001 From: Timo Sirainen Date: Tue, 2 Oct 2001 07:55:51 +0000 Subject: [PATCH] Added MODULE_DATA_UNSET() macro and started using it. Just to make sure we don't try to access free'd data. git-svn-id: http://svn.irssi.org/repos/irssi/trunk@1818 dbcabf3a-b0e7-0310-adc4-f8d773084564 --- src/core/modules.h | 3 +++ src/fe-common/core/fe-common-core.c | 2 ++ src/irc/flood/flood.c | 1 + src/irc/notifylist/notifylist.c | 1 + 4 files changed, 7 insertions(+) diff --git a/src/core/modules.h b/src/core/modules.h index bf2dba31..5677cace 100644 --- a/src/core/modules.h +++ b/src/core/modules.h @@ -10,6 +10,9 @@ #define MODULE_DATA_SET(rec, data) \ g_hash_table_insert((rec)->module_data, MODULE_NAME, data) +#define MODULE_DATA_UNSET(rec) \ + g_hash_table_remove((rec)->module_data, MODULE_NAME) + #define MODULE_DATA(rec) \ g_hash_table_lookup((rec)->module_data, MODULE_NAME) diff --git a/src/fe-common/core/fe-common-core.c b/src/fe-common/core/fe-common-core.c index 0f5ce6ea..afdf8509 100644 --- a/src/fe-common/core/fe-common-core.c +++ b/src/fe-common/core/fe-common-core.c @@ -111,6 +111,7 @@ static void sig_connected(SERVER_REC *server) static void sig_disconnected(SERVER_REC *server) { g_free(MODULE_DATA(server)); + MODULE_DATA_UNSET(server); } static void sig_channel_created(CHANNEL_REC *channel) @@ -121,6 +122,7 @@ static void sig_channel_created(CHANNEL_REC *channel) static void sig_channel_destroyed(CHANNEL_REC *channel) { g_free(MODULE_DATA(channel)); + MODULE_DATA_UNSET(channel); } void fe_common_core_init(void) diff --git a/src/irc/flood/flood.c b/src/irc/flood/flood.c index aa383554..d5339d4f 100644 --- a/src/irc/flood/flood.c +++ b/src/irc/flood/flood.c @@ -160,6 +160,7 @@ static void flood_deinit_server(IRC_SERVER_REC *server) g_hash_table_destroy(mserver->floodlist); } g_free(mserver); + MODULE_DATA_UNSET(server); } static FLOOD_ITEM_REC *flood_find(FLOOD_REC *flood, int level, diff --git a/src/irc/notifylist/notifylist.c b/src/irc/notifylist/notifylist.c index 09a6f7c7..402e315e 100644 --- a/src/irc/notifylist/notifylist.c +++ b/src/irc/notifylist/notifylist.c @@ -218,6 +218,7 @@ static void notifylist_deinit_server(IRC_SERVER_REC *server) notify_nick_destroy(rec); } g_free(mserver); + MODULE_DATA_UNSET(server); } void notifylist_left(IRC_SERVER_REC *server, NOTIFY_NICK_REC *rec)