diff options
author | Adam- <Adam-@5417fbe8-f217-4b02-8779-1006273d7864> | 2010-05-30 03:01:33 +0000 |
---|---|---|
committer | Adam- <Adam-@5417fbe8-f217-4b02-8779-1006273d7864> | 2010-05-30 03:01:33 +0000 |
commit | 9b26a0dc0976c6bc31bfcaee4c25ef008984be8b (patch) | |
tree | 3b18ff1ed97bcc670009b4af77d22e58560a16ff /src/core | |
parent | 15c66af4e50ec2096268b858a68a4f51d086a5d9 (diff) |
Fixed a crash on shutdown when running Anope on Mac
git-svn-id: http://anope.svn.sourceforge.net/svnroot/anope/stable@2991 5417fbe8-f217-4b02-8779-1006273d7864
Diffstat (limited to 'src/core')
-rw-r--r-- | src/core/os_logonnews.c | 19 | ||||
-rw-r--r-- | src/core/os_opernews.c | 20 |
2 files changed, 27 insertions, 12 deletions
diff --git a/src/core/os_logonnews.c b/src/core/os_logonnews.c index 60d101650..1880612c4 100644 --- a/src/core/os_logonnews.c +++ b/src/core/os_logonnews.c @@ -15,8 +15,6 @@ #include "module.h" -Command *c; - void myOperServHelp(User * u); int load_config(void); int reload_config(int argc, char **argv); @@ -29,6 +27,7 @@ int reload_config(int argc, char **argv); **/ int AnopeInit(int argc, char **argv) { + Command *c; EvtHook *hook; char buf[BUFSIZE]; @@ -62,7 +61,12 @@ int AnopeInit(int argc, char **argv) **/ void AnopeFini(void) { - free(c->help_param1); + Command *c = findCommand(OPERSERV, "LOGONNEWS"); + if (c && c->help_param1) + { + free(c->help_param1); + c->help_param1 = NULL; + } } @@ -83,12 +87,15 @@ void myOperServHelp(User * u) **/ int reload_config(int argc, char **argv) { char buf[BUFSIZE]; + Command *c; if (argc >= 1) { if (!stricmp(argv[0], EVENT_START)) { - free(c->help_param1); - snprintf(buf, BUFSIZE, "%d", NewsCount), - c->help_param1 = sstrdup(buf); + if ((c = findCommand(OPERSERV, "LOGONNEWS"))) { + free(c->help_param1); + snprintf(buf, BUFSIZE, "%d", NewsCount), + c->help_param1 = sstrdup(buf); + } } } diff --git a/src/core/os_opernews.c b/src/core/os_opernews.c index f64d95d9d..648d4f354 100644 --- a/src/core/os_opernews.c +++ b/src/core/os_opernews.c @@ -15,8 +15,6 @@ #include "module.h" -Command *c; - void myOperServHelp(User * u); int load_config(void); int reload_config(int argc, char **argv); @@ -29,6 +27,7 @@ int reload_config(int argc, char **argv); **/ int AnopeInit(int argc, char **argv) { + Command *c; EvtHook *hook; char buf[BUFSIZE]; @@ -62,7 +61,13 @@ int AnopeInit(int argc, char **argv) **/ void AnopeFini(void) { - free(c->help_param1); + Command *c = findCommand(OPERSERV, "OPERNEWS"); + + if (c && c->help_param1) + { + free(c->help_param1); + c->help_param1 = NULL; + } } @@ -82,12 +87,15 @@ void myOperServHelp(User * u) **/ int reload_config(int argc, char **argv) { char buf[BUFSIZE]; + Command *c; if (argc >= 1) { if (!stricmp(argv[0], EVENT_START)) { - free(c->help_param1); - snprintf(buf, BUFSIZE, "%d", NewsCount), - c->help_param1 = sstrdup(buf); + if ((c = findCommand(OPERSERV, "OPERNEWS"))) { + free(c->help_param1); + snprintf(buf, BUFSIZE, "%d", NewsCount), + c->help_param1 = sstrdup(buf); + } } } |