summaryrefslogtreecommitdiff
path: root/src/modules.c
diff options
context:
space:
mode:
authorAdam <Adam@anope.org>2013-07-25 20:31:51 -0400
committerAdam <Adam@anope.org>2013-07-25 20:31:51 -0400
commita563c8fb2f3b92de6b3f7a0417f213036f7000e6 (patch)
treec35ff8b9825365de3d4c098e75578fa42d42b377 /src/modules.c
parentdef6a6deee39d80890d6cabd0a6bb7f28e3c6d7b (diff)
Fix dumb modules
Diffstat (limited to 'src/modules.c')
-rw-r--r--src/modules.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/src/modules.c b/src/modules.c
index f1fcb39d1..ceeb7e3a0 100644
--- a/src/modules.c
+++ b/src/modules.c
@@ -2563,6 +2563,14 @@ int moduleGetConfigDirective(Directive * d)
char *s = NULL;
char *t = NULL;
int retval = 1;
+ int i;
+
+ /* Dumb modules pass uninitialized string pointers here. Dumb people will not add the proper configuration values to services.conf.
+ * Combine the two and you end up with parse_directive never setting the char* pointers passed here. So, null them out now.
+ */
+ for (i = 0; i < MAXPARAMS && d->params[i].type != PARAM_NONE; i++)
+ if (d->params[i].type == PARAM_STRING)
+ *(char **) d->params[i].ptr = NULL;
config = fopen(SERVICES_CONF, "r");
if (!config) {