summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/modules.c22
1 files changed, 6 insertions, 16 deletions
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);
}