summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Changes1
-rw-r--r--src/modules.c22
-rw-r--r--version.log6
3 files changed, 12 insertions, 17 deletions
diff --git a/Changes b/Changes
index c6903c28e..6f6f61e29 100644
--- a/Changes
+++ b/Changes
@@ -6,6 +6,7 @@ Anope Version S V N
01/15 F listnicks now shows if a nickname is suspended. [#825]
01/15 F Re-assigned access to OS CHANLIST to Services Opers. [#827]
01/24 F Several language errors. [ #00]
+01/26 F Various oddities in moduleAddData(). [#833]
Provided by Jan Milants <jan_renee@msn.com> - 2008
01/16 F Server traversion with next_server() failed to list all servers. [#831]
diff --git a/src/modules.c b/src/modules.c
index 13d4535cd..b71fd4f8b 100644
--- a/src/modules.c
+++ b/src/modules.c
@@ -2143,42 +2143,32 @@ int moduleDataDebug(ModuleData ** md)
**/
int moduleAddData(ModuleData ** md, char *key, char *value)
{
- /* Do we really need this sstrdup here? Why can't we just use
- * mod_current_module_name itself inside this function? It's not like
- * we're changing it or anything, we just pass it to yet another
- * sstrdup() somewhere down there.... -GD
- */
- char *mod_name = sstrdup(mod_current_module_name);
ModuleData *newData = NULL;
- if (!key || !value) {
- alog("A module tried to use ModuleAddData() with one ore more NULL arguments... returning");
- free(mod_name);
- return MOD_ERR_PARAMS;
- }
-
if (mod_current_module_name == NULL) {
alog("moduleAddData() called with mod_current_module_name being NULL");
if (debug)
do_backtrace(0);
}
+ if (!key || !value) {
+ alog("A module (%s) tried to use ModuleAddData() with one or more NULL arguments... returning", mod_current_module_name);
+ return MOD_ERR_PARAMS;
+ }
+
moduleDelData(md, key); /* Remove any existing module data for this module with the same key */
newData = malloc(sizeof(ModuleData));
if (!newData) {
- free(mod_name);
return MOD_ERR_MEMORY;
}
- newData->moduleName = sstrdup(mod_name);
+ newData->moduleName = sstrdup(mod_current_module_name);
newData->key = sstrdup(key);
newData->value = sstrdup(value);
newData->next = *md;
*md = newData;
- free(mod_name);
-
if (debug) {
moduleDataDebug(md);
}
diff --git a/version.log b/version.log
index 0c72b376e..e9295725d 100644
--- a/version.log
+++ b/version.log
@@ -9,10 +9,14 @@ VERSION_MAJOR="1"
VERSION_MINOR="7"
VERSION_PATCH="21"
VERSION_EXTRA="-svn"
-VERSION_BUILD="1353"
+VERSION_BUILD="1354"
# $Log$
#
+# BUILD : 1.7.21 (1354)
+# BUGS : 833
+# NOTES : Ficed various oddities in moduleAddData()
+#
# BUILD : 1.7.21 (1353)
# BUGS :
# NOTES : Rules for Changes: [[1]] A always goes before F (and anything else in between) [[2]] Anything within an A-block or F-block for 1 version is sorted ascending on the date (newer lines on the bottom) [[3]] Lines end with a period.