diff options
author | geniusdex geniusdex@31f1291d-b8d6-0310-a050-a5561fc1590b <geniusdex geniusdex@31f1291d-b8d6-0310-a050-a5561fc1590b@5417fbe8-f217-4b02-8779-1006273d7864> | 2005-08-10 15:47:42 +0000 |
---|---|---|
committer | geniusdex geniusdex@31f1291d-b8d6-0310-a050-a5561fc1590b <geniusdex geniusdex@31f1291d-b8d6-0310-a050-a5561fc1590b@5417fbe8-f217-4b02-8779-1006273d7864> | 2005-08-10 15:47:42 +0000 |
commit | b70fa90b8dd2c8652f6c1b9e471e2940bcaed29e (patch) | |
tree | 35feed0e3c3065ae0d79463cd071ba3509987cac /src/modules/os_info.c | |
parent | 866d7cc99bb78ae069987e2894580d8ed15c83f0 (diff) |
BUILD : 1.7.10 (851) BUGS : NOTES : Fixed a few memleaks in os_info (thanks Certus)
git-svn-id: svn://svn.anope.org/anope/trunk@851 31f1291d-b8d6-0310-a050-a5561fc1590b
git-svn-id: http://anope.svn.sourceforge.net/svnroot/anope/trunk@604 5417fbe8-f217-4b02-8779-1006273d7864
Diffstat (limited to 'src/modules/os_info.c')
-rw-r--r-- | src/modules/os_info.c | 31 |
1 files changed, 15 insertions, 16 deletions
diff --git a/src/modules/os_info.c b/src/modules/os_info.c index ed0b13c8e..bbb308535 100644 --- a/src/modules/os_info.c +++ b/src/modules/os_info.c @@ -271,6 +271,7 @@ int myNickInfo(User * u) { char *text = NULL; char *nick = NULL; + char *info = NULL; NickAlias *na = NULL; /* Only show our goodies to opers */ @@ -283,10 +284,9 @@ int myNickInfo(User * u) /* ok we've found the user */ if ((na = findnick(nick))) { /* If we have any info on this user */ - if (moduleGetData(&na->nc->moduleData, "info")) { - notice_user(s_NickServ, u, " OperInfo: %s", - moduleGetData(&na->nc->moduleData, - "info")); + if ((info = moduleGetData(&na->nc->moduleData, "info"))) { + notice_user(s_NickServ, u, " OperInfo: %s", info); + free(info); } /* NickCore not found! */ } else { @@ -308,6 +308,7 @@ int myChanInfo(User * u) { char *text = NULL; char *chan = NULL; + char *info = NULL; ChannelInfo *ci = NULL; /* Only show our goodies to opers */ @@ -319,10 +320,9 @@ int myChanInfo(User * u) if (chan) { if ((ci = cs_findchan(chan))) { /* If we have any info on this channel */ - if (moduleGetData(&ci->moduleData, "info")) { - notice_user(s_ChanServ, u, " OperInfo: %s", - moduleGetData(&ci->moduleData, - "info")); + if ((info = moduleGetData(&ci->moduleData, "info"))) { + notice_user(s_ChanServ, u, " OperInfo: %s", info); + free(info); } } free(chan); @@ -403,6 +403,7 @@ int mSaveData(int argc, char **argv) int i = 0; int ret = 0; FILE *out; + char *info = NULL; if (argc >= 1) { if (!stricmp(argv[0], EVENT_START)) { @@ -415,10 +416,9 @@ int mSaveData(int argc, char **argv) for (i = 0; i < 1024; i++) { for (nc = nclists[i]; nc; nc = nc->next) { /* If we have any info on this user */ - if (moduleGetData(&nc->moduleData, "info")) { - fprintf(out, "N %s %s\n", nc->display, - moduleGetData(&nc->moduleData, - "info")); + if ((info = moduleGetData(&nc->moduleData, "info"))) { + fprintf(out, "N %s %s\n", nc->display, info); + free(info); } } } @@ -427,10 +427,9 @@ int mSaveData(int argc, char **argv) for (i = 0; i < 256; i++) { for (ci = chanlists[i]; ci; ci = ci->next) { /* If we have any info on this channel */ - if (moduleGetData(&ci->moduleData, "info")) { - fprintf(out, "C %s %s\n", ci->name, - moduleGetData(&ci->moduleData, - "info")); + if ((info = moduleGetData(&ci->moduleData, "info"))) { + fprintf(out, "C %s %s\n", ci->name, info); + free(info); } } } |