summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/actions.c2
-rw-r--r--src/base64.c2
-rw-r--r--src/bots.cpp10
-rw-r--r--src/botserv.c32
-rw-r--r--src/channels.c95
-rw-r--r--src/chanserv.c101
-rw-r--r--src/core/bs_badwords.c8
-rw-r--r--src/core/bs_bot.c68
-rw-r--r--src/core/bs_fantasy_kick.c8
-rw-r--r--src/core/bs_fantasy_kickban.c4
-rw-r--r--src/core/bs_fantasy_seen.c2
-rw-r--r--src/core/cs_akick.c50
-rw-r--r--src/core/cs_clear.c6
-rw-r--r--src/core/cs_identify.c6
-rw-r--r--src/core/cs_list.c14
-rw-r--r--src/core/cs_logout.c6
-rw-r--r--src/core/cs_register.c2
-rw-r--r--src/core/cs_set.c10
-rw-r--r--src/core/cs_suspend.c4
-rw-r--r--src/core/cs_topic.c4
-rw-r--r--src/core/hs_group.c10
-rw-r--r--src/core/hs_list.c8
-rw-r--r--src/core/hs_set.c54
-rw-r--r--src/core/hs_setall.c54
-rw-r--r--src/core/ms_del.c6
-rw-r--r--src/core/ns_access.c6
-rw-r--r--src/core/ns_drop.c2
-rw-r--r--src/core/ns_forbid.c2
-rw-r--r--src/core/ns_group.c12
-rw-r--r--src/core/ns_identify.c14
-rw-r--r--src/core/ns_list.c10
-rw-r--r--src/core/ns_register.c17
-rw-r--r--src/core/ns_saset.c6
-rw-r--r--src/core/ns_set.c10
-rw-r--r--src/core/ns_update.c6
-rw-r--r--src/core/os_akill.c4
-rw-r--r--src/core/os_chankill.c2
-rw-r--r--src/core/os_kick.c6
-rw-r--r--src/core/os_logonnews.c10
-rw-r--r--src/core/os_opernews.c8
-rw-r--r--src/core/os_quit.c6
-rw-r--r--src/core/os_reload.c6
-rw-r--r--src/core/os_restart.c6
-rw-r--r--src/core/os_shutdown.c6
-rw-r--r--src/datafiles.c20
-rw-r--r--src/events.c18
-rw-r--r--src/hostserv.c46
-rw-r--r--src/init.c2
-rw-r--r--src/language.c28
-rw-r--r--src/mail.c14
-rw-r--r--src/main.c20
-rw-r--r--src/memory.c15
-rw-r--r--src/memoserv.c2
-rw-r--r--src/misc.c22
-rw-r--r--src/module.cpp6
-rw-r--r--src/modules.c58
-rw-r--r--src/modules/bs_fantasy_unban.c6
-rw-r--r--src/modules/cs_appendtopic.c6
-rw-r--r--src/modules/cs_enforce.c4
-rw-r--r--src/modules/cs_tban.c6
-rw-r--r--src/modules/hs_request.c60
-rw-r--r--src/modules/ns_maxemail.c8
-rw-r--r--src/modules/ns_noop_convert.c6
-rw-r--r--src/modules/os_ignore_db.c56
-rw-r--r--src/modules/os_info.c45
-rw-r--r--src/news.c2
-rw-r--r--src/nickserv.c70
-rw-r--r--src/operserv.c70
-rw-r--r--src/process.c175
-rw-r--r--src/protocol/inspircd11.c3
-rw-r--r--src/protocol/inspircd12.cpp5
-rw-r--r--src/protocol/ratbox.c18
-rw-r--r--src/protocol/unreal32.c6
-rw-r--r--src/servers.c19
-rw-r--r--src/sessions.c18
-rw-r--r--src/timeout.c6
-rw-r--r--src/users.c68
77 files changed, 783 insertions, 830 deletions
diff --git a/src/actions.c b/src/actions.c
index c455dfa61..9d1a415d1 100644
--- a/src/actions.c
+++ b/src/actions.c
@@ -194,7 +194,7 @@ void common_unban(ChannelInfo * ci, char *nick)
}
/* host_resolve() sstrdup us this info so we gotta free it */
if (host) {
- free(host);
+ delete [] host;
}
}
diff --git a/src/base64.c b/src/base64.c
index 5a11b9237..87212fa00 100644
--- a/src/base64.c
+++ b/src/base64.c
@@ -405,6 +405,6 @@ long base64dects(const char *ts)
return strtoul(ts, NULL, 10);
}
value = base64dec(token);
- Anope_Free(token);
+ delete [] token;
return value;
}
diff --git a/src/bots.cpp b/src/bots.cpp
index a86f37076..90987f279 100644
--- a/src/bots.cpp
+++ b/src/bots.cpp
@@ -51,10 +51,10 @@ BotInfo::~BotInfo()
nbots--;
- free(this->nick);
- free(this->user);
- free(this->host);
- free(this->real);
+ delete [] this->nick;
+ delete [] this->user;
+ delete [] this->host;
+ delete [] this->real;
}
@@ -68,7 +68,7 @@ void BotInfo::ChangeNick(const char *newnick)
botlists[tolower(*this->nick)] = this->next;
if (this->nick)
- free(this->nick);
+ delete [] this->nick;
this->nick = sstrdup(newnick);
insert_bot(this);
diff --git a/src/botserv.c b/src/botserv.c
index 62b19fb1a..371294c8c 100644
--- a/src/botserv.c
+++ b/src/botserv.c
@@ -266,7 +266,7 @@ void botchanmsgs(User * u, ChannelInfo * ci, char *buf)
nbuf + strlen(nbuf) - len)))) {
mustkick = 1;
} else {
- char *wordbuf = (char *)scalloc(len + 3, 1);
+ char *wordbuf = new char[len + 3];
wordbuf[0] = ' ';
wordbuf[len + 1] = ' ';
@@ -281,7 +281,7 @@ void botchanmsgs(User * u, ChannelInfo * ci, char *buf)
}
/* free previous (sc)allocated memory (#850) */
- free(wordbuf);
+ delete [] wordbuf;
}
}
} else if (bw->type == BW_START) {
@@ -293,7 +293,7 @@ void botchanmsgs(User * u, ChannelInfo * ci, char *buf)
&& (!strnicmp(nbuf, bw->word, len)))) {
mustkick = 1;
} else {
- char *wordbuf = (char *)scalloc(len + 2, 1);
+ char *wordbuf = new char[len + 2];
memcpy(wordbuf + 1, bw->word, len);
wordbuf[0] = ' ';
@@ -304,7 +304,7 @@ void botchanmsgs(User * u, ChannelInfo * ci, char *buf)
&& (stristr(nbuf, wordbuf))))
mustkick = 1;
- free(wordbuf);
+ delete [] wordbuf;
}
} else if (bw->type == BW_END) {
int len = strlen(bw->word);
@@ -320,7 +320,7 @@ void botchanmsgs(User * u, ChannelInfo * ci, char *buf)
len)))) {
mustkick = 1;
} else {
- char *wordbuf = (char *)scalloc(len + 2, 1);
+ char *wordbuf = new char[len + 2];
memcpy(wordbuf, bw->word, len);
wordbuf[len] = ' ';
@@ -331,7 +331,7 @@ void botchanmsgs(User * u, ChannelInfo * ci, char *buf)
&& (stristr(nbuf, wordbuf))))
mustkick = 1;
- free(wordbuf);
+ delete [] wordbuf;
}
}
@@ -343,14 +343,14 @@ void botchanmsgs(User * u, ChannelInfo * ci, char *buf)
bot_kick(ci, u, BOT_REASON_BADWORD, bw->word);
/* free the normalized buffer before return (#850) */
- Anope_Free(nbuf);
+ delete [] nbuf;
return;
}
}
/* Free the normalized buffer */
- Anope_Free(nbuf);
+ delete [] nbuf;
}
/* Flood kicker */
@@ -382,7 +382,7 @@ void botchanmsgs(User * u, ChannelInfo * ci, char *buf)
return;
}
if (ud->lastline && stricmp(ud->lastline, buf)) {
- free(ud->lastline);
+ delete [] ud->lastline;
ud->lastline = sstrdup(buf);
ud->times = 0;
} else {
@@ -464,7 +464,7 @@ void load_bs_dbase(void)
SAFE(read_string(&s, f));
bi = new BotInfo(s);
- free(s);
+ delete [] s;
SAFE(read_string(&bi->user, f));
SAFE(read_string(&bi->host, f));
SAFE(read_string(&bi->real, f));
@@ -604,9 +604,9 @@ static BanData *get_ban_data(Channel * c, User * u)
else
c->bd = bd->next;
if (bd->mask)
- free(bd->mask);
+ delete [] bd->mask;
next = bd->next;
- free(bd);
+ delete bd;
continue;
}
if (!stricmp(bd->mask, mask)) {
@@ -617,7 +617,7 @@ static BanData *get_ban_data(Channel * c, User * u)
}
/* If we fall here it is that we haven't found the record */
- bd = (BanData *)scalloc(sizeof(BanData), 1);
+ bd = new BanData;
bd->mask = sstrdup(mask);
bd->last_use = now;
@@ -651,7 +651,7 @@ static UserData *get_user_data(Channel * c, User * u)
/* Checks whether data is obsolete */
if (now - user->ud->last_use > BSKeepData) {
if (user->ud->lastline)
- free(user->ud->lastline);
+ delete [] user->ud->lastline;
/* We should not free and realloc, but reset to 0
instead. */
memset(user->ud, 0, sizeof(UserData));
@@ -660,7 +660,7 @@ static UserData *get_user_data(Channel * c, User * u)
return user->ud;
} else {
- user->ud = (UserData *)scalloc(sizeof(UserData), 1);
+ user->ud = new UserData;
user->ud->last_use = time(NULL);
return user->ud;
}
@@ -989,7 +989,7 @@ char *normalizeBuffer(const char *buf)
int i, len, j = 0;
len = strlen(buf);
- newbuf = (char *) smalloc(sizeof(char) * len + 1);
+ newbuf = new char[len + 1];
for (i = 0; i < len; i++) {
switch (buf[i]) {
diff --git a/src/channels.c b/src/channels.c
index 8a24b3ddf..203f53751 100644
--- a/src/channels.c
+++ b/src/channels.c
@@ -35,8 +35,8 @@ void chan_deluser(User * user, Channel * c)
if (u->ud) {
if (u->ud->lastline)
- free(u->ud->lastline);
- free(u->ud);
+ delete [] u->ud->lastline;
+ delete u->ud;
}
if (u->next)
@@ -45,7 +45,7 @@ void chan_deluser(User * user, Channel * c)
u->prev->next = u->next;
else
c->users = u->next;
- free(u);
+ delete u;
c->usercount--;
if (s_BotServ && c->ci && c->ci->bi && c->usercount == BSMinUsers - 1) {
@@ -555,8 +555,8 @@ void do_join(const char *source, int ac, const char **av)
chan_deluser(user, c->chan);
send_event(EVENT_PART_CHANNEL, 3, EVENT_STOP, user->nick,
channame);
- free(channame);
- free(c);
+ delete [] channame;
+ delete c;
c = nextc;
}
user->chans = NULL;
@@ -649,7 +649,7 @@ void do_kick(const char *source, int ac, const char **av)
c->prev->next = c->next;
else
user->chans = c->next;
- free(c);
+ delete c;
}
}
}
@@ -707,11 +707,11 @@ void do_part(const char *source, int ac, const char **av)
c->prev->next = c->next;
else
user->chans = c->next;
- free(c);
+ delete c;
send_event(EVENT_PART_CHANNEL, (ac >= 2 ? 4 : 3), EVENT_STOP,
user->nick, channame, (ac >= 2 ? av[1] : ""));
- free(channame);
+ delete [] channame;
}
}
}
@@ -1027,7 +1027,7 @@ void do_sjoin(const char *source, int ac, const char **av)
alog("debug: SJOIN for nonexistent user %s on %s", s,
av[1]);
}
- free((char *)s);
+ delete [] s;
return;
}
@@ -1067,7 +1067,7 @@ void do_sjoin(const char *source, int ac, const char **av)
break;
s = end + 1;
}
- free((char *)s);
+ delete [] s;
} else if (ac == 2) {
if (ircd->ts6) {
user = find_byuid(source);
@@ -1224,17 +1224,17 @@ void do_topic(const char *source, int ac, const char **av)
if ((ac > 3) && *av[3] && ci && ci->last_topic
&& (strcmp(av[3], ci->last_topic) == 0)
&& (strcmp(topicsetter, ci->last_topic_setter) == 0)) {
- free(topicsetter);
+ delete [] topicsetter;
return;
}
if (check_topiclock(c, topic_time)) {
- free(topicsetter);
+ delete [] topicsetter;
return;
}
if (c->topic) {
- free(c->topic);
+ delete [] c->topic;
c->topic = NULL;
}
if (ac > 3 && *av[3]) {
@@ -1243,7 +1243,7 @@ void do_topic(const char *source, int ac, const char **av)
strscpy(c->topic_setter, topicsetter, sizeof(c->topic_setter));
c->topic_time = topic_time;
- free(topicsetter);
+ delete [] topicsetter;
record_topic(av[0]);
@@ -1435,7 +1435,7 @@ void chan_set_correct_modes(User * user, Channel * c, int give_modes)
if ((add_modes & CUS_OWNER) && !(status & CUS_OWNER)) {
tmp = stripModePrefix(ircd->ownerset);
strcat(modebuf, tmp);
- free(tmp);
+ delete [] tmp;
strcat(userbuf, " ");
strcat(userbuf, user->nick);
} else {
@@ -1444,7 +1444,7 @@ void chan_set_correct_modes(User * user, Channel * c, int give_modes)
if ((add_modes & CUS_PROTECT) && !(status & CUS_PROTECT)) {
tmp = stripModePrefix(ircd->adminset);
strcat(modebuf, tmp);
- free(tmp);
+ delete [] tmp;
strcat(userbuf, " ");
strcat(userbuf, user->nick);
} else {
@@ -1478,14 +1478,14 @@ void chan_set_correct_modes(User * user, Channel * c, int give_modes)
if (rem_modes & CUS_OWNER) {
tmp = stripModePrefix(ircd->ownerset);
strcat(modebuf, tmp);
- free(tmp);
+ delete [] tmp;
strcat(userbuf, " ");
strcat(userbuf, user->nick);
}
if (rem_modes & CUS_PROTECT) {
tmp = stripModePrefix(ircd->adminset);
strcat(modebuf, tmp);
- free(tmp);
+ delete [] tmp;
strcat(userbuf, " ");
strcat(userbuf, user->nick);
}
@@ -1526,7 +1526,7 @@ void chan_adduser2(User * user, Channel * c)
{
struct c_userlist *u;
- u = (struct c_userlist *)scalloc(sizeof(struct c_userlist), 1);
+ u = new c_userlist;
u->next = c->users;
if (c->users)
c->users->prev = u;
@@ -1591,7 +1591,7 @@ Channel *chan_create(const char *chan, time_t ts)
if (debug)
alog("debug: Creating channel %s", chan);
/* Allocate pre-cleared memory */
- c = (Channel *)scalloc(sizeof(Channel), 1);
+ c = new Channel;
strscpy(c->name, chan, sizeof(c->name));
list = &chanlist[HASH(c->name)];
c->next = *list;
@@ -1629,26 +1629,26 @@ void chan_delete(Channel * c)
for (bd = c->bd; bd; bd = next) {
if (bd->mask)
- free(bd->mask);
+ delete [] bd->mask;
next = bd->next;
- free(bd);
+ delete bd;
}
if (c->ci)
c->ci->c = NULL;
if (c->topic)
- free(c->topic);
+ delete [] c->topic;
if (c->key)
- free(c->key);
+ delete [] c->key;
if (ircd->fmode) {
if (c->flood)
- free(c->flood);
+ delete [] c->flood;
}
if (ircd->Lmode) {
if (c->redirect)
- free(c->redirect);
+ delete [] c->redirect;
}
if (c->bans && c->bans->count) {
@@ -1680,7 +1680,7 @@ void chan_delete(Channel * c)
else
chanlist[HASH(c->name)] = c->next;
- free(c);
+ delete c;
}
/*************************************************************************/
@@ -1800,7 +1800,7 @@ Channel *join_user_update(User * user, Channel * chan, const char *name,
if (debug)
alog("debug: %s joins %s", user->nick, chan->name);
- c = (u_chanlist *)scalloc(sizeof(*c), 1);
+ c = new u_chanlist;
c->next = user->chans;
if (user->chans)
user->chans->prev = c;
@@ -1817,7 +1817,7 @@ Channel *join_user_update(User * user, Channel * chan, const char *name,
void set_flood(Channel * chan, const char *value)
{
if (chan->flood)
- free(chan->flood);
+ delete [] chan->flood;
chan->flood = value ? sstrdup(value) : NULL;
if (debug)
@@ -1830,7 +1830,7 @@ void set_flood(Channel * chan, const char *value)
void chan_set_key(Channel * chan, const char *value)
{
if (chan->key)
- free(chan->key);
+ delete [] chan->key;
chan->key = value ? sstrdup(value) : NULL;
if (debug)
@@ -1854,7 +1854,7 @@ void set_limit(Channel * chan, const char *value)
void set_redirect(Channel * chan, const char *value)
{
if (chan->redirect)
- free(chan->redirect);
+ delete [] chan->redirect;
chan->redirect = value ? sstrdup(value) : NULL;
if (debug)
@@ -1880,7 +1880,7 @@ void do_mass_mode(char *modes)
for (c = firstchan(); c; c = nextchan()) {
if (c->bouncy_modes) {
free(av);
- free(myModes);
+ delete [] myModes;
return;
} else {
ircdproto->SendMode(findbot(s_OperServ), c->name, "%s", modes);
@@ -1888,7 +1888,7 @@ void do_mass_mode(char *modes)
}
}
free(av);
- free(myModes);
+ delete [] myModes;
}
/*************************************************************************/
@@ -1918,7 +1918,7 @@ Entry *entry_create(char *mask)
int do_free;
uint32 ip, cidr;
- entry = (Entry *)scalloc(1, sizeof(Entry));
+ entry = new Entry;
entry->type = ENTRYTYPE_NONE;
entry->prev = NULL;
entry->next = NULL;
@@ -2001,7 +2001,9 @@ Entry *entry_create(char *mask)
entry->type |= ENTRYTYPE_HOST;
}
}
- free(mask);
+ delete [] mask;
+ if (do_free)
+ delete [] host;
return entry;
}
@@ -2022,7 +2024,10 @@ Entry *entry_add(EList * list, const char *mask)
e = entry_create(hostmask);
if (!e)
+ {
+ delete [] hostmask;
return NULL;
+ }
e->next = list->entries;
e->prev = NULL;
@@ -2032,6 +2037,8 @@ Entry *entry_add(EList * list, const char *mask)
list->entries = e;
list->count++;
+ delete [] hostmask;
+
return e;
}
@@ -2055,13 +2062,13 @@ void entry_delete(EList * list, Entry * e)
list->entries = e->next;
if (e->nick)
- free(e->nick);
+ delete [] e->nick;
if (e->user)
- free(e->user);
+ delete [] e->user;
if (e->host)
- free(e->host);
- free(e->mask);
- free(e);
+ delete [] e->host;
+ delete [] e->mask;
+ delete e;
list->count--;
}
@@ -2075,7 +2082,7 @@ EList *list_create()
{
EList *list;
- list = (EList *)scalloc(1, sizeof(EList));
+ list = new EList;
list->entries = NULL;
list->count = 0;
@@ -2157,7 +2164,7 @@ int entry_match_mask(Entry * e, char *mask, uint32 ip)
res = entry_match(e, nick, user, host, ip);
/* Free the destroyed mask. */
- free(hostmask);
+ delete [] hostmask;
return res;
}
@@ -2225,7 +2232,7 @@ Entry *elist_match_mask(EList * list, char *mask, uint32 ip)
res = elist_match(list, nick, user, host, ip);
/* Free the destroyed mask. */
- free(hostmask);
+ delete [] hostmask;
return res;
}
@@ -2266,7 +2273,7 @@ Entry *elist_match_user(EList * list, User * u)
elist_match(list, u->nick, u->username, u->vhost, ip);
if (host)
- free(host);
+ delete [] host;
return res;
}
diff --git a/src/chanserv.c b/src/chanserv.c
index f42248098..944cd2e98 100644
--- a/src/chanserv.c
+++ b/src/chanserv.c
@@ -333,7 +333,7 @@ void load_cs_dbase(void)
SAFE(read_string(&s, f));
if (s) {
ci->founder = findcore(s);
- free(s);
+ delete [] s;
} else
ci->founder = NULL;
if (ver >= 7) {
@@ -348,7 +348,7 @@ void load_cs_dbase(void)
else
ci->successor = NULL;
}
- free(s);
+ delete [] s;
} else
ci->successor = NULL;
} else {
@@ -382,7 +382,7 @@ void load_cs_dbase(void)
ci->bantype = tmp16;
SAFE(read_int16(&tmp16, f));
n_levels = tmp16;
- ci->levels = (int16 *)scalloc(2 * CA_SIZE, 1);
+ ci->levels = new int16[CA_SIZE];
reset_levels(ci);
for (j = 0; j < n_levels; j++) {
SAFE(read_int16(&tmp16, f));
@@ -401,7 +401,7 @@ void load_cs_dbase(void)
SAFE(read_string(&s, f));
if (s) {
ci->access[j].nc = findcore(s);
- free(s);
+ delete [] s;
}
if (ci->access[j].nc == NULL)
ci->access[j].in_use = 0;
@@ -424,7 +424,7 @@ void load_cs_dbase(void)
ci->akick[j].u.nc = findcore(s);
if (!ci->akick[j].u.nc)
ci->akick[j].flags &= ~AK_USED;
- free(s);
+ delete [] s;
} else {
ci->akick[j].u.mask = s;
}
@@ -432,12 +432,12 @@ void load_cs_dbase(void)
if (ci->akick[j].flags & AK_USED)
ci->akick[j].reason = s;
else if (s)
- free(s);
+ delete [] s;
SAFE(read_string(&s, f));
if (ci->akick[j].flags & AK_USED) {
ci->akick[j].creator = s;
} else if (s) {
- free(s);
+ delete [] s;
}
SAFE(read_int32(&tmp32, f));
if (ci->akick[j].flags & AK_USED)
@@ -457,14 +457,14 @@ void load_cs_dbase(void)
} else {
SAFE(read_string(&s, f));
if (s)
- free(s);
+ delete [] s;
}
if (ircd->Lmode) {
SAFE(read_string(&ci->mlock_redirect, f));
} else {
SAFE(read_string(&s, f));
if (s)
- free(s);
+ delete [] s;
}
SAFE(read_int16(&tmp16, f));
@@ -495,7 +495,7 @@ void load_cs_dbase(void)
SAFE(read_string(&s, f));
if (s) {
ci->bi = findbot(s);
- free(s);
+ delete [] s;
} else
ci->bi = NULL;
@@ -503,7 +503,7 @@ void load_cs_dbase(void)
ci->botflags = tmp32;
SAFE(read_int16(&tmp16, f));
n_ttb = tmp16;
- ci->ttb = (int16 *)scalloc(2 * TTB_SIZE, 1);
+ ci->ttb = new int16[2 * TTB_SIZE];
for (j = 0; j < n_ttb; j++) {
SAFE(read_int16(&tmp16, f));
if (j < TTB_SIZE)
@@ -930,7 +930,7 @@ int check_valid_op(User * user, Channel * chan, int servermode)
"%so%s %s %s %s", ircd->adminunset,
tmp, user->nick,
user->nick, user->nick);
- free(tmp);
+ delete [] tmp;
} else {
tmp = stripModePrefix(ircd->ownerunset);
ircdproto->SendMode(whosends(chan->ci), chan->name,
@@ -938,7 +938,7 @@ int check_valid_op(User * user, Channel * chan, int servermode)
ircd->adminunset, tmp,
user->nick, user->nick, user->nick,
user->nick);
- free(tmp);
+ delete [] tmp;
}
} else if (!ircd->owner && ircd->protect) {
if (check_access(user, chan->ci, CA_AUTOHALFOP)) {
@@ -974,7 +974,7 @@ int check_valid_op(User * user, Channel * chan, int servermode)
"%sho%s %s %s %s %s", ircd->adminunset,
tmp, user->nick, user->nick,
user->nick, user->nick);
- free(tmp);
+ delete [] tmp;
} else {
ircdproto->SendMode(whosends(chan->ci), chan->name, "-ho %s %s",
user->nick, user->nick);
@@ -1068,7 +1068,7 @@ int check_should_owner(User * user, char *chan)
tmp = stripModePrefix(ircd->ownerset);
ircdproto->SendMode(whosends(ci), chan, "+o%s %s %s", tmp, user->nick,
user->nick);
- free(tmp);
+ delete [] tmp;
return 1;
}
@@ -1089,7 +1089,7 @@ int check_should_protect(User * user, char *chan)
tmp = stripModePrefix(ircd->adminset);
ircdproto->SendMode(whosends(ci), chan, "+o%s %s %s", tmp, user->nick,
user->nick);
- free(tmp);
+ delete [] tmp;
return 1;
}
@@ -1109,7 +1109,7 @@ static void timeout_leave(Timeout * to)
ci->flags &= ~CI_INHABIT;
ircdproto->SendPart(findbot(s_ChanServ), chan, NULL);
- free(to->data);
+ delete [] (const char *)to->data;
}
@@ -1267,7 +1267,7 @@ void record_topic(const char *chan)
return;
if (ci->last_topic)
- free(ci->last_topic);
+ delete [] ci->last_topic;
if (c->topic)
ci->last_topic = sstrdup(c->topic);
@@ -1301,7 +1301,7 @@ void restore_topic(const char *chan)
return;
}
if (c->topic)
- free(c->topic);
+ delete [] c->topic;
if (ci->last_topic) {
c->topic = sstrdup(ci->last_topic);
strscpy(c->topic_setter, ci->last_topic_setter, NICKMAX);
@@ -1345,7 +1345,7 @@ int check_topiclock(Channel * c, time_t topic_time)
return 0;
if (c->topic)
- free(c->topic);
+ delete [] c->topic;
if (ci->last_topic) {
c->topic = sstrdup(ci->last_topic);
strscpy(c->topic_setter, ci->last_topic_setter, NICKMAX);
@@ -1476,11 +1476,11 @@ void cs_remove_nick(const NickCore * nc)
if ((akick->flags & AK_USED) && (akick->flags & AK_ISNICK)
&& akick->u.nc == nc) {
if (akick->creator) {
- free(akick->creator);
+ delete [] akick->creator;
akick->creator = NULL;
}
if (akick->reason) {
- free(akick->reason);
+ delete [] akick->reason;
akick->reason = NULL;
}
akick->flags = 0;
@@ -1600,7 +1600,7 @@ ChannelInfo *makechan(const char *chan)
strscpy(ci->name, chan, CHANMAX);
ci->time_registered = time(NULL);
reset_levels(ci);
- ci->ttb = (int16 *)scalloc(2 * TTB_SIZE, 1);
+ ci->ttb = new int16[2 * TTB_SIZE];
for (i = 0; i < TTB_SIZE; i++)
ci->ttb[i] = 0;
alpha_insert_chan(ci);
@@ -1667,7 +1667,7 @@ int delchan(ChannelInfo * ci)
cilist->prev->next = cilist->next;
else
u->founder_chans = cilist->next;
- free(cilist);
+ delete cilist;
}
cilist = cilist_next;
}
@@ -1684,30 +1684,30 @@ int delchan(ChannelInfo * ci)
else
chanlists[(unsigned char) tolower(ci->name[1])] = ci->next;
if (ci->desc)
- free(ci->desc);
+ delete [] ci->desc;
if (ci->url)
- free(ci->url);
+ delete [] ci->url;
if (ci->email)
- free(ci->email);
+ delete [] ci->email;
if (ci->entry_message)
- free(ci->entry_message);
+ delete [] ci->entry_message;
if (ci->mlock_key)
- free(ci->mlock_key);
+ delete [] ci->mlock_key;
if (ircd->fmode) {
if (ci->mlock_flood)
- free(ci->mlock_flood);
+ delete [] ci->mlock_flood;
}
if (ircd->Lmode) {
if (ci->mlock_redirect)
- free(ci->mlock_redirect);
+ delete [] ci->mlock_redirect;
}
if (ci->last_topic)
- free(ci->last_topic);
+ delete [] ci->last_topic;
if (ci->forbidby)
- free(ci->forbidby);
+ delete [] ci->forbidby;
if (ci->forbidreason)
- free(ci->forbidreason);
+ delete [] ci->forbidreason;
if (ci->access)
free(ci->access);
if (debug >= 2) {
@@ -1715,11 +1715,11 @@ int delchan(ChannelInfo * ci)
}
for (i = 0; i < ci->akickcount; i++) {
if (!(ci->akick[i].flags & AK_ISNICK) && ci->akick[i].u.mask)
- free(ci->akick[i].u.mask);
+ delete [] ci->akick[i].u.mask;
if (ci->akick[i].reason)
- free(ci->akick[i].reason);
+ delete [] ci->akick[i].reason;
if (ci->akick[i].creator)
- free(ci->akick[i].creator);
+ delete [] ci->akick[i].creator;
}
if (debug >= 2) {
alog("debug: delchan() done with the akick list");
@@ -1727,14 +1727,14 @@ int delchan(ChannelInfo * ci)
if (ci->akick)
free(ci->akick);
if (ci->levels)
- free(ci->levels);
+ delete [] ci->levels;
if (debug >= 2) {
alog("debug: delchan() top of the memo list");
}
if (ci->memos.memos) {
for (i = 0; i < ci->memos.memocount; i++) {
if (ci->memos.memos[i].text)
- free(ci->memos.memos[i].text);
+ delete [] ci->memos.memos[i].text;
}
free(ci->memos.memos);
}
@@ -1742,14 +1742,14 @@ int delchan(ChannelInfo * ci)
alog("debug: delchan() done with the memo list");
}
if (ci->ttb)
- free(ci->ttb);
+ delete [] ci->ttb;
if (debug >= 2) {
alog("debug: delchan() top of the badword list");
}
for (i = 0; i < ci->bwcount; i++) {
if (ci->badwords[i].word)
- free(ci->badwords[i].word);
+ delete [] ci->badwords[i].word;
}
if (ci->badwords)
free(ci->badwords);
@@ -1788,8 +1788,8 @@ void reset_levels(ChannelInfo * ci)
}
if (ci->levels)
- free(ci->levels);
- ci->levels = (int16 *)scalloc(CA_SIZE * sizeof(*ci->levels), 1);
+ delete [] ci->levels;
+ ci->levels = new int16[CA_SIZE];
for (i = 0; def_levels[i][0] >= 0; i++)
ci->levels[def_levels[i][0]] = def_levels[i][1];
}
@@ -1950,7 +1950,7 @@ int get_idealban(ChannelInfo * ci, User * u, char *ret, int retlen)
case 3:
mask = create_mask(u);
snprintf(ret, retlen, "*!%s", mask);
- free(mask);
+ delete [] mask;
return 1;
default:
@@ -2018,7 +2018,7 @@ void cs_set_flood(ChannelInfo * ci, const char *value)
}
if (ci->mlock_flood)
- free(ci->mlock_flood);
+ delete [] ci->mlock_flood;
/* This looks ugly, but it works ;) */
if (ircdproto->IsFloodModeParamValid(value)) {
@@ -2038,7 +2038,7 @@ void cs_set_key(ChannelInfo * ci, const char *value)
}
if (ci->mlock_key)
- free(ci->mlock_key);
+ delete [] ci->mlock_key;
/* Don't allow keys with a coma */
if (value && *value != ':' && !strchr(value, ',')) {
@@ -2072,7 +2072,7 @@ void cs_set_redirect(ChannelInfo * ci, const char *value)
}
if (ci->mlock_redirect)
- free(ci->mlock_redirect);
+ delete [] ci->mlock_redirect;
/* Don't allow keys with a coma */
if (value && *value == '#') {
@@ -2189,8 +2189,13 @@ void stick_mask(ChannelInfo * ci, AutoKick * akick)
for (ban = ci->c->bans->entries; ban; ban = ban->next) {
/* If akick is already covered by a wider ban.
Example: c->bans[i] = *!*@*.org and akick->u.mask = *!*@*.epona.org */
- if (entry_match_mask(ban, sstrdup(akick->u.mask), 0))
+ char *mask = sstrdup(akick->u.mask);
+ if (entry_match_mask(ban, mask, 0))
+ {
+ delete [] mask;
return;
+ }
+ delete [] mask;
if (ircd->reversekickcheck) {
/* If akick is wider than a ban already in place.
diff --git a/src/core/bs_badwords.c b/src/core/bs_badwords.c
index 92561c26b..15e7c15ef 100644
--- a/src/core/bs_badwords.c
+++ b/src/core/bs_badwords.c
@@ -176,7 +176,7 @@ int do_badwords(User * u)
notice_lang(s_BotServ, u, BOT_BADWORDS_DELETED, bw->word,
ci->name);
if (bw->word)
- free(bw->word);
+ delete [] bw->word;
bw->word = NULL;
bw->in_use = 0;
deleted = 1;
@@ -194,7 +194,7 @@ int do_badwords(User * u)
ci->badwords[a].type = ci->badwords[b].type;
if (ci->badwords[b].word) {
ci->badwords[a].word = sstrdup(ci->badwords[b].word);
- free(ci->badwords[b].word);
+ delete [] ci->badwords[b].word;
}
ci->badwords[b].word = NULL;
ci->badwords[b].in_use = 0;
@@ -246,7 +246,7 @@ int do_badwords(User * u)
for (i = 0; i < ci->bwcount; i++)
if (ci->badwords[i].word)
- free(ci->badwords[i].word);
+ delete [] ci->badwords[i].word;
free(ci->badwords);
ci->badwords = NULL;
@@ -273,7 +273,7 @@ int badwords_del_callback(User * u, int num, va_list args)
bw = &ci->badwords[num - 1];
if (bw->word)
- free(bw->word);
+ delete [] bw->word;
bw->word = NULL;
bw->in_use = 0;
diff --git a/src/core/bs_bot.c b/src/core/bs_bot.c
index 946dd2d96..77e1f712e 100644
--- a/src/core/bs_bot.c
+++ b/src/core/bs_bot.c
@@ -58,7 +58,7 @@ int do_bot(User * u)
BotInfo *bi;
char *cmd = strtok(NULL, " ");
char *ch = NULL;
-
+
if (!cmd)
{
syntax_error(s_BotServ, u, "BOT", BOT_BOT_SYNTAX);
@@ -77,7 +77,7 @@ int do_bot(User * u)
char *user = strtok(NULL, " ");
char *host = strtok(NULL, " ");
char *real = strtok(NULL, "");
-
+
if (!nick || !user || !host || !real)
{
syntax_error(s_BotServ, u, "BOT", BOT_BOT_SYNTAX);
@@ -89,7 +89,7 @@ int do_bot(User * u)
notice_lang(s_BotServ, u, BOT_BOT_ALREADY_EXISTS, nick);
return MOD_CONT;
}
-
+
if (strlen(nick) > NickLen)
{
notice_lang(s_BotServ, u, BOT_BAD_NICK);
@@ -130,7 +130,7 @@ int do_bot(User * u)
notice_lang(s_BotServ, u, BOT_BAD_NICK);
return MOD_CONT;
}
-
+
/* Check the host is valid re RFC 2812 */
if (!isValidHost(host, 3))
{
@@ -146,7 +146,7 @@ int do_bot(User * u)
return MOD_CONT;
}
}
-
+
/* We check whether the nick is registered, and inform the user
* if so. You need to drop the nick manually before you can use
@@ -157,30 +157,30 @@ int do_bot(User * u)
notice_lang(s_BotServ, u, NICK_ALREADY_REGISTERED, nick);
return MOD_CONT;
}
-
+
bi = new BotInfo(nick);
if (!bi)
{
notice_lang(s_BotServ, u, BOT_BOT_CREATION_FAILED);
return MOD_CONT;
}
-
+
bi->user = sstrdup(user);
bi->host = sstrdup(host);
bi->real = sstrdup(real);
bi->created = time(NULL);
bi->chancount = 0;
-
+
/* We check whether user with this nick is online, and kill it if so */
EnforceQlinedNick(nick, s_BotServ);
-
+
/* We make the bot online, ready to serve */
- ircdproto->SendClientIntroduction(bi->nick, bi->user, bi->host, bi->real,
+ ircdproto->SendClientIntroduction(bi->nick, bi->user, bi->host, bi->real,
ircd->pseudoclient_mode, bi->uid.c_str());
-
+
notice_lang(s_BotServ, u, BOT_BOT_ADDED, bi->nick, bi->user,
bi->host, bi->real);
-
+
send_event(EVENT_BOT_CREATE, 1, bi->nick);
}
else if (!stricmp(cmd, "CHANGE"))
@@ -190,7 +190,7 @@ int do_bot(User * u)
char *user = strtok(NULL, " ");
char *host = strtok(NULL, " ");
char *real = strtok(NULL, "");
-
+
if (!oldnick || !nick)
{
syntax_error(s_BotServ, u, "BOT", BOT_BOT_SYNTAX);
@@ -240,7 +240,7 @@ int do_bot(User * u)
notice_lang(s_BotServ, u, BOT_BOT_ANY_CHANGES);
return MOD_CONT;
}
-
+
/* Check the nick is valid re RFC 2812 */
if (isdigit(nick[0]) || nick[0] == '-')
{
@@ -256,20 +256,20 @@ int do_bot(User * u)
return MOD_CONT;
}
}
-
+
/* check for hardcored ircd forbidden nicks */
if (!ircdproto->IsNickValid(nick))
{
notice_lang(s_BotServ, u, BOT_BAD_NICK);
return MOD_CONT;
}
-
+
if (host && !isValidHost(host, 3))
{
notice_lang(s_BotServ, u, BOT_BAD_HOST);
return MOD_CONT;
}
-
+
if (user)
{
for (ch = user; *ch && (ch - user) < USERMAX; ch++)
@@ -281,13 +281,13 @@ int do_bot(User * u)
}
}
}
-
+
if (stricmp(bi->nick, nick) && findbot(nick))
{
notice_lang(s_BotServ, u, BOT_BOT_ALREADY_EXISTS, nick);
return MOD_CONT;
}
-
+
if (stricmp(bi->nick, nick))
{
/* We check whether the nick is registered, and inform the user
@@ -299,37 +299,37 @@ int do_bot(User * u)
notice_lang(s_BotServ, u, NICK_ALREADY_REGISTERED, nick);
return MOD_CONT;
}
-
+
/* The new nick is really different, so we remove the Q line for
the old nick. */
if (ircd->sqline)
{
ircdproto->SendSQLineDel(bi->nick);
}
-
+
/* We check whether user with this nick is online, and kill it if so */
EnforceQlinedNick(nick, s_BotServ);
}
-
+
if (strcmp(nick, bi->nick))
bi->ChangeNick(nick);
-
+
if (user && strcmp(user, bi->user))
{
- free(bi->user);
+ delete [] bi->user;
bi->user = sstrdup(user);
}
if (host && strcmp(host, bi->host))
{
- free(bi->host);
+ delete [] bi->host;
bi->host = sstrdup(host);
}
if (real && strcmp(real, bi->real))
{
- free(bi->real);
+ delete [] bi->real;
bi->real = sstrdup(real);
}
-
+
/* If only the nick changes, we just make the bot change his nick,
* else we must make it quit and rejoin. We must not forget to set
* the Q:Line either (it's otherwise set in SendClientIntroduction)
@@ -346,34 +346,34 @@ int do_bot(User * u)
ircd->pseudoclient_mode, bi->uid.c_str());
bi->RejoinAll();
}
-
+
notice_lang(s_BotServ, u, BOT_BOT_CHANGED,
oldnick, bi->nick, bi->user, bi->host, bi->real);
-
+
send_event(EVENT_BOT_CHANGE, 1, bi->nick);
}
else if (!stricmp(cmd, "DEL"))
{
char *nick = strtok(NULL, " ");
-
+
if (!nick)
{
syntax_error(s_BotServ, u, "BOT", BOT_BOT_SYNTAX);
return MOD_CONT;
}
-
+
if (!(bi = findbot(nick)))
{
notice_lang(s_BotServ, u, BOT_DOES_NOT_EXIST, nick);
return MOD_CONT;
}
-
+
if (nickIsServices(nick, 0))
{
notice_lang(s_BotServ, u, BOT_DOES_NOT_EXIST);
return MOD_CONT;
}
-
+
send_event(EVENT_BOT_DEL, 1, bi->nick);
ircdproto->SendQuit(bi, "Quit: Help! I'm being deleted by %s!", u->nick);
ircdproto->SendSQLineDel(bi->nick);
@@ -382,7 +382,7 @@ int do_bot(User * u)
}
else
syntax_error(s_BotServ, u, "BOT", BOT_BOT_SYNTAX);
-
+
return MOD_CONT;
}
diff --git a/src/core/bs_fantasy_kick.c b/src/core/bs_fantasy_kick.c
index f5c3018b6..98c176425 100644
--- a/src/core/bs_fantasy_kick.c
+++ b/src/core/bs_fantasy_kick.c
@@ -6,8 +6,8 @@
* Please read COPYING and README for further details.
*
* Based on the original code of Epona by Lara.
- * Based on the original code of Services by Andy Church.
- *
+ * Based on the original code of Services by Andy Church.
+ *
* $Id$
*
*/
@@ -77,9 +77,9 @@ int do_fantasy(int argc, char **argv)
}
if (target)
- free(target);
+ delete [] target;
if (reason)
- free(reason);
+ delete [] reason;
return MOD_CONT;
}
diff --git a/src/core/bs_fantasy_kickban.c b/src/core/bs_fantasy_kickban.c
index 1281d938b..1167caf30 100644
--- a/src/core/bs_fantasy_kickban.c
+++ b/src/core/bs_fantasy_kickban.c
@@ -79,9 +79,9 @@ int do_fantasy(int argc, char **argv)
}
if (target)
- free(target);
+ delete [] target;
if (reason)
- free(reason);
+ delete [] reason;
return MOD_CONT;
}
diff --git a/src/core/bs_fantasy_seen.c b/src/core/bs_fantasy_seen.c
index 76e9a0273..0a9236aa0 100644
--- a/src/core/bs_fantasy_seen.c
+++ b/src/core/bs_fantasy_seen.c
@@ -127,7 +127,7 @@ int do_fantasy(int argc, char **argv)
ircdproto->SendPrivmsg(ci->bi, ci->name, "%s", buf);
}
/* free myStrGetToken(ed) variable target (#851) */
- Anope_Free(target);
+ if (target) delete [] target;
}
return MOD_CONT;
diff --git a/src/core/cs_akick.c b/src/core/cs_akick.c
index 94fa7c826..df4bd69f5 100644
--- a/src/core/cs_akick.c
+++ b/src/core/cs_akick.c
@@ -6,8 +6,8 @@
* Please read COPYING and README for further details.
*
* Based on the original code of Epona by Lara.
- * Based on the original code of Services by Andy Church.
- *
+ * Based on the original code of Services by Andy Church.
+ *
* $Id$
*
*/
@@ -62,15 +62,15 @@ int akick_del(User * u, AutoKick * akick)
if (akick->flags & AK_ISNICK) {
akick->u.nc = NULL;
} else {
- free(akick->u.mask);
+ delete [] akick->u.mask;
akick->u.mask = NULL;
}
if (akick->reason) {
- free(akick->reason);
+ delete [] akick->reason;
akick->reason = NULL;
}
if (akick->creator) {
- free(akick->creator);
+ delete [] akick->creator;
akick->creator = NULL;
}
akick->addtime = 0;
@@ -206,13 +206,12 @@ int do_akick(User * u)
if (!na) {
split_usermask(mask, &nick, &user, &host);
- mask =
- (char *)scalloc(strlen(nick) + strlen(user) + strlen(host) + 3, 1);
+ mask = new char[strlen(nick) + strlen(user) + strlen(host) + 3];
freemask = 1;
sprintf(mask, "%s!%s@%s", nick, user, host);
- free(nick);
- free(user);
- free(host);
+ delete [] nick;
+ delete [] user;
+ delete [] host;
} else {
if (na->status & NS_VERBOTEN) {
notice_lang(s_ChanServ, u, NICK_X_FORBIDDEN, mask);
@@ -226,18 +225,18 @@ int do_akick(User * u)
if (is_excepted_mask(ci, mask) == 1) {
notice_lang(s_ChanServ, u, CHAN_EXCEPTED, mask, chan);
if (freemask)
- free(mask);
+ delete [] mask;
return MOD_CONT;
}
}
- /* Check whether target nick has equal/higher access
+ /* Check whether target nick has equal/higher access
* or whether the mask matches a user with higher/equal access - Viper */
if ((ci->flags & CI_PEACE) && nc) {
if ((nc == ci->founder) || (get_access_nc(nc, ci) >= get_access(u, ci))) {
notice_lang(s_ChanServ, u, PERMISSION_DENIED);
if (freemask)
- free(mask);
+ delete [] mask;
return MOD_CONT;
}
} else if ((ci->flags & CI_PEACE)) {
@@ -249,7 +248,7 @@ int do_akick(User * u)
if (is_founder(u2, ci) || (get_access(u2, ci) >= get_access(u, ci))) {
if (match_usermask(mask, u2)) {
notice_lang(s_ChanServ, u, PERMISSION_DENIED);
- free(mask);
+ delete [] mask;
return MOD_CONT;
}
}
@@ -263,12 +262,12 @@ int do_akick(User * u)
if (na2->status & NS_VERBOTEN)
continue;
- if (na2->nc && ((na2->nc == ci->founder) || (get_access_nc(na2->nc, ci)
+ if (na2->nc && ((na2->nc == ci->founder) || (get_access_nc(na2->nc, ci)
>= get_access(u, ci)))) {
snprintf(buf, BUFSIZE, "%s!%s", na2->nick, na2->last_usermask);
if (match_wild_nocase(mask, buf)) {
notice_lang(s_ChanServ, u, PERMISSION_DENIED);
- free(mask);
+ delete [] mask;
return MOD_CONT;
}
}
@@ -285,7 +284,7 @@ int do_akick(User * u)
(akick->flags & AK_ISNICK) ? akick->u.nc->
display : akick->u.mask, chan);
if (freemask)
- free(mask);
+ delete [] mask;
return MOD_CONT;
}
}
@@ -295,7 +294,7 @@ int do_akick(User * u)
if (ci->akickcount >= CSAutokickMax) {
notice_lang(s_ChanServ, u, CHAN_AKICK_REACHED_LIMIT, CSAutokickMax);
if (freemask)
- free(mask);
+ delete [] mask;
return MOD_CONT;
}
ci->akickcount++;
@@ -335,10 +334,9 @@ int do_akick(User * u)
do_kick(s_ChanServ, 3, argv);
- // XXX: casting is necessary thanks to strict g++ stuff, really, we should be using std::string here though.
- free((void *)argv[2]);
- free((void *)argv[1]);
- free((void *)argv[0]);
+ delete [] argv[2];
+ delete [] argv[1];
+ delete [] argv[0];
count++;
}
@@ -352,7 +350,7 @@ int do_akick(User * u)
count);
if (freemask)
- free(mask);
+ delete [] mask;
} else if (stricmp(cmd, "STICK") == 0) {
NickAlias *na;
@@ -603,9 +601,9 @@ int do_akick(User * u)
do_kick(s_ChanServ, 3, argv);
- free((void *)argv[2]);
- free((void *)argv[1]);
- free((void *)argv[0]);
+ delete [] argv[2];
+ delete [] argv[1];
+ delete [] argv[0];
count++;
}
diff --git a/src/core/cs_clear.c b/src/core/cs_clear.c
index 9fca88548..3d2e13fdf 100644
--- a/src/core/cs_clear.c
+++ b/src/core/cs_clear.c
@@ -347,9 +347,9 @@ int do_clear(User * u)
av[2] = sstrdup(buf);
ircdproto->SendKick(whosends(ci), av[0], av[1], av[2]);
do_kick(s_ChanServ, 3, av);
- free((void *)av[2]);
- free((void *)av[1]);
- free((void *)av[0]);
+ delete [] av[2];
+ delete [] av[1];
+ delete [] av[0];
}
notice_lang(s_ChanServ, u, CHAN_CLEARED_USERS, chan);
} else {
diff --git a/src/core/cs_identify.c b/src/core/cs_identify.c
index baad140e8..219c23ea4 100644
--- a/src/core/cs_identify.c
+++ b/src/core/cs_identify.c
@@ -6,8 +6,8 @@
* Please read COPYING and README for further details.
*
* Based on the original code of Epona by Lara.
- * Based on the original code of Services by Andy Church.
- *
+ * Based on the original code of Services by Andy Church.
+ *
* $Id$
*
*/
@@ -77,7 +77,7 @@ int do_identify(User * u)
if ((res = enc_check_password(pass, ci->founderpass)) == 1) {
if (!is_identified(u, ci)) {
- uc = (struct u_chaninfolist *)scalloc(sizeof(*uc), 1);
+ uc = new u_chaninfolist;
uc->next = u->founder_chans;
if (u->founder_chans)
u->founder_chans->prev = uc;
diff --git a/src/core/cs_list.c b/src/core/cs_list.c
index 7c2d3fba2..da2732067 100644
--- a/src/core/cs_list.c
+++ b/src/core/cs_list.c
@@ -91,14 +91,14 @@ int do_list(User * u)
}
for (s = tmp; *s; s++) {
if (!isdigit(*s)) {
- free(tmp);
+ delete [] tmp;
notice_lang(s_ChanServ, u, LIST_INCORRECT_RANGE);
notice_lang(s_ChanServ, u, CS_LIST_INCORRECT_RANGE);
return MOD_CONT;
}
}
from = atoi(tmp);
- free(tmp);
+ delete [] tmp;
tmp = myStrGetTokenRemainder(pattern, '-', 1); /* Read TO out */
if (!tmp) {
notice_lang(s_ChanServ, u, LIST_INCORRECT_RANGE);
@@ -107,14 +107,14 @@ int do_list(User * u)
}
for (s = tmp; *s; s++) {
if (!isdigit(*s)) {
- free(tmp);
+ delete [] tmp;
notice_lang(s_ChanServ, u, LIST_INCORRECT_RANGE);
notice_lang(s_ChanServ, u, CS_LIST_INCORRECT_RANGE);
return MOD_CONT;
}
}
to = atoi(tmp);
- free(tmp);
+ delete [] tmp;
pattern = sstrdup("*");
tofree = 1;
}
@@ -132,7 +132,7 @@ int do_list(User * u)
}
spattern_size = (strlen(pattern) + 2) * sizeof(char);
- spattern = (char *)smalloc(spattern_size);
+ spattern = new char[spattern_size];
snprintf(spattern, spattern_size, "#%s", pattern);
@@ -176,10 +176,10 @@ int do_list(User * u)
}
notice_lang(s_ChanServ, u, CHAN_LIST_END,
nchans > CSListMax ? CSListMax : nchans, nchans);
- free(spattern);
+ delete [] spattern;
}
if (tofree)
- free(pattern);
+ delete [] pattern;
return MOD_CONT;
}
diff --git a/src/core/cs_logout.c b/src/core/cs_logout.c
index 16e2a8ebc..457fe90e3 100644
--- a/src/core/cs_logout.c
+++ b/src/core/cs_logout.c
@@ -6,8 +6,8 @@
* Please read COPYING and README for further details.
*
* Based on the original code of Epona by Lara.
- * Based on the original code of Services by Andy Church.
- *
+ * Based on the original code of Services by Andy Church.
+ *
* $Id$
*
*/
@@ -109,7 +109,7 @@ void make_unidentified(User * u, ChannelInfo * ci)
uci->prev->next = uci->next;
else
u->founder_chans = uci->next;
- free(uci);
+ delete uci;
break;
}
}
diff --git a/src/core/cs_register.c b/src/core/cs_register.c
index 524790330..44de7947c 100644
--- a/src/core/cs_register.c
+++ b/src/core/cs_register.c
@@ -153,7 +153,7 @@ int do_register(User * u)
notice_lang(s_ChanServ, u, CHAN_PASSWORD_IS, tmp_pass);
}
- uc = (struct u_chaninfolist *)scalloc(sizeof(*uc), 1);
+ uc = new u_chaninfolist;
uc->next = u->founder_chans;
uc->prev = NULL;
if (u->founder_chans)
diff --git a/src/core/cs_set.c b/src/core/cs_set.c
index 0a49d259d..f6ed8611b 100644
--- a/src/core/cs_set.c
+++ b/src/core/cs_set.c
@@ -374,7 +374,7 @@ int do_set_password(User * u, ChannelInfo * ci, char *param)
int do_set_desc(User * u, ChannelInfo * ci, char *param)
{
if (ci->desc)
- free(ci->desc);
+ delete [] ci->desc;
ci->desc = sstrdup(param);
notice_lang(s_ChanServ, u, CHAN_DESC_CHANGED, ci->name, param);
return MOD_CONT;
@@ -385,7 +385,7 @@ int do_set_desc(User * u, ChannelInfo * ci, char *param)
int do_set_url(User * u, ChannelInfo * ci, char *param)
{
if (ci->url)
- free(ci->url);
+ delete [] ci->url;
if (param) {
ci->url = sstrdup(param);
notice_lang(s_ChanServ, u, CHAN_URL_CHANGED, ci->name, param);
@@ -401,7 +401,7 @@ int do_set_url(User * u, ChannelInfo * ci, char *param)
int do_set_email(User * u, ChannelInfo * ci, char *param)
{
if (ci->email)
- free(ci->email);
+ delete [] ci->email;
if (param) {
ci->email = sstrdup(param);
notice_lang(s_ChanServ, u, CHAN_EMAIL_CHANGED, ci->name, param);
@@ -417,7 +417,7 @@ int do_set_email(User * u, ChannelInfo * ci, char *param)
int do_set_entrymsg(User * u, ChannelInfo * ci, char *param)
{
if (ci->entry_message)
- free(ci->entry_message);
+ delete [] ci->entry_message;
if (param) {
ci->entry_message = sstrdup(param);
notice_lang(s_ChanServ, u, CHAN_ENTRY_MSG_CHANGED, ci->name,
@@ -498,7 +498,7 @@ int do_set_mlock(User * u, ChannelInfo * ci, char *param)
if ((ci->mlock_on & ircd->chan_lmode)
&& !(ci->mlock_on & anope_get_limit_mode())) {
ci->mlock_on &= ~ircd->chan_lmode;
- free(ci->mlock_redirect);
+ delete [] ci->mlock_redirect;
notice_lang(s_ChanServ, u, CHAN_SET_MLOCK_L_REQUIRED);
}
}
diff --git a/src/core/cs_suspend.c b/src/core/cs_suspend.c
index fd9500e90..a1bab7c08 100644
--- a/src/core/cs_suspend.c
+++ b/src/core/cs_suspend.c
@@ -169,12 +169,12 @@ int do_unsuspend(User * u)
ci->flags &= ~CI_SUSPENDED;
if (ci->forbidreason)
{
- free(ci->forbidreason);
+ delete [] ci->forbidreason;
ci->forbidreason = NULL;
}
if (ci->forbidby)
{
- free(ci->forbidby);
+ delete [] ci->forbidby;
ci->forbidby = NULL;
}
diff --git a/src/core/cs_topic.c b/src/core/cs_topic.c
index 111042403..fa43bef20 100644
--- a/src/core/cs_topic.c
+++ b/src/core/cs_topic.c
@@ -71,13 +71,13 @@ int do_cs_topic(User * u)
notice_lang(s_ChanServ, u, PERMISSION_DENIED);
} else {
if (ci->last_topic)
- free(ci->last_topic);
+ delete [] ci->last_topic;
ci->last_topic = topic ? sstrdup(topic) : NULL;
strscpy(ci->last_topic_setter, u->nick, NICKMAX);
ci->last_topic_time = time(NULL);
if (c->topic)
- free(c->topic);
+ delete [] c->topic;
c->topic = topic ? sstrdup(topic) : NULL;
strscpy(c->topic_setter, u->nick, NICKMAX);
if (ircd->topictsbackward) {
diff --git a/src/core/hs_group.c b/src/core/hs_group.c
index 336e5be92..a8e077639 100644
--- a/src/core/hs_group.c
+++ b/src/core/hs_group.c
@@ -6,8 +6,8 @@
* Please read COPYING and README for further details.
*
* Based on the original code of Epona by Lara.
- * Based on the original code of Services by Andy Church.
- *
+ * Based on the original code of Services by Andy Church.
+ *
* $Id$
*
*/
@@ -93,10 +93,10 @@ int do_group(User * u)
notice_lang(s_HostServ, u, HOST_GROUP, na->nc->display,
vHost);
}
- free(vHost);
+ delete [] vHost;
if (vIdent)
- free(vIdent);
- free(creator);
+ delete [] vIdent;
+ delete [] creator;
} else {
notice_lang(s_HostServ, u, HOST_NOT_ASSIGNED);
diff --git a/src/core/hs_list.c b/src/core/hs_list.c
index 46db3ab40..fe6ed7782 100644
--- a/src/core/hs_list.c
+++ b/src/core/hs_list.c
@@ -85,13 +85,13 @@ int listOut(User * u)
}
for (s = tmp; *s; s++) {
if (!isdigit(*s)) {
- free(tmp);
+ delete [] tmp;
notice_lang(s_ChanServ, u, LIST_INCORRECT_RANGE);
return MOD_CONT;
}
}
from = atoi(tmp);
- free(tmp);
+ delete [] tmp;
tmp = myStrGetTokenRemainder(key, '-', 1); /* Read TO out */
if (!tmp) {
notice_lang(s_ChanServ, u, LIST_INCORRECT_RANGE);
@@ -99,13 +99,13 @@ int listOut(User * u)
}
for (s = tmp; *s; s++) {
if (!isdigit(*s)) {
- free(tmp);
+ delete [] tmp;
notice_lang(s_ChanServ, u, LIST_INCORRECT_RANGE);
return MOD_CONT;
}
}
to = atoi(tmp);
- free(tmp);
+ delete [] tmp;
key = NULL;
}
}
diff --git a/src/core/hs_set.c b/src/core/hs_set.c
index 9886c1ce4..ab158dc84 100644
--- a/src/core/hs_set.c
+++ b/src/core/hs_set.c
@@ -6,8 +6,8 @@
* Please read COPYING and README for further details.
*
* Based on the original code of Epona by Lara.
- * Based on the original code of Services by Andy Church.
- *
+ * Based on the original code of Services by Andy Church.
+ *
* $Id$
*
*/
@@ -58,7 +58,7 @@ int myDoSet(User * u)
{
char *nick = strtok(NULL, " ");
char *rawhostmask = strtok(NULL, " ");
- char *hostmask = (char *)smalloc(HOSTMAX);
+ char *hostmask = new char[HOSTMAX];
NickAlias *na;
int32 tmp_time;
@@ -68,7 +68,7 @@ int myDoSet(User * u)
if (!nick || !rawhostmask) {
notice_lang(s_HostServ, u, HOST_SET_SYNTAX, s_HostServ);
- free(hostmask);
+ delete [] hostmask;
return MOD_CONT;
}
@@ -77,32 +77,32 @@ int myDoSet(User * u)
rawhostmask = myStrGetTokenRemainder(rawhostmask, '@', 1); /* get the remaining string */
if (!rawhostmask) {
notice_lang(s_HostServ, u, HOST_SET_SYNTAX, s_HostServ);
- free(vIdent);
- free(hostmask);
+ delete [] vIdent;
+ delete [] hostmask;
return MOD_CONT;
}
if (strlen(vIdent) > USERMAX - 1) {
notice_lang(s_HostServ, u, HOST_SET_IDENTTOOLONG, USERMAX);
- free(vIdent);
- free(rawhostmask);
- free(hostmask);
+ delete [] vIdent;
+ delete [] rawhostmask;
+ delete [] hostmask;
return MOD_CONT;
} else {
for (s = vIdent; *s; s++) {
if (!isvalidchar(*s)) {
notice_lang(s_HostServ, u, HOST_SET_IDENT_ERROR);
- free(vIdent);
- free(rawhostmask);
- free(hostmask);
+ delete [] vIdent;
+ delete [] rawhostmask;
+ delete [] hostmask;
return MOD_CONT;
}
}
}
if (!ircd->vident) {
notice_lang(s_HostServ, u, HOST_NO_VIDENT);
- free(vIdent);
- free(rawhostmask);
- free(hostmask);
+ delete [] vIdent;
+ delete [] rawhostmask;
+ delete [] hostmask;
return MOD_CONT;
}
}
@@ -111,20 +111,20 @@ int myDoSet(User * u)
else {
notice_lang(s_HostServ, u, HOST_SET_TOOLONG, HOSTMAX);
if (vIdent) {
- free(vIdent);
- free(rawhostmask);
+ delete [] vIdent;
+ delete [] rawhostmask;
}
- free(hostmask);
+ delete [] hostmask;
return MOD_CONT;
}
if (!isValidHost(hostmask, 3)) {
notice_lang(s_HostServ, u, HOST_SET_ERROR);
if (vIdent) {
- free(vIdent);
- free(rawhostmask);
+ delete [] vIdent;
+ delete [] rawhostmask;
}
- free(hostmask);
+ delete [] hostmask;
return MOD_CONT;
}
@@ -135,10 +135,10 @@ int myDoSet(User * u)
if (na->status & NS_VERBOTEN) {
notice_lang(s_HostServ, u, NICK_X_FORBIDDEN, nick);
if (vIdent) {
- free(vIdent);
- free(rawhostmask);
+ delete [] vIdent;
+ delete [] rawhostmask;
}
- free(hostmask);
+ delete [] hostmask;
return MOD_CONT;
}
if (vIdent && ircd->vident) {
@@ -156,10 +156,10 @@ int myDoSet(User * u)
} else {
notice_lang(s_HostServ, u, HOST_NOREG, nick);
}
- free(hostmask);
+ delete [] hostmask;
if (vIdent) {
- free(vIdent);
- free(rawhostmask);
+ delete [] vIdent;
+ delete [] rawhostmask;
}
return MOD_CONT;
}
diff --git a/src/core/hs_setall.c b/src/core/hs_setall.c
index 2c220f638..10555d7b7 100644
--- a/src/core/hs_setall.c
+++ b/src/core/hs_setall.c
@@ -6,8 +6,8 @@
* Please read COPYING and README for further details.
*
* Based on the original code of Epona by Lara.
- * Based on the original code of Services by Andy Church.
- *
+ * Based on the original code of Services by Andy Church.
+ *
* $Id$
*
*/
@@ -59,7 +59,7 @@ int do_setall(User * u)
{
char *nick = (char *)strtok(NULL, " ");
char *rawhostmask = strtok(NULL, " ");
- char *hostmask = (char *)smalloc(HOSTMAX);
+ char *hostmask = new char[HOSTMAX];
NickAlias *na;
int32 tmp_time;
@@ -69,7 +69,7 @@ int do_setall(User * u)
if (!nick || !rawhostmask) {
notice_lang(s_HostServ, u, HOST_SETALL_SYNTAX, s_HostServ);
- free(hostmask);
+ delete [] hostmask;
return MOD_CONT;
}
@@ -78,32 +78,32 @@ int do_setall(User * u)
rawhostmask = myStrGetTokenRemainder(rawhostmask, '@', 1); /* get the remaining string */
if (!rawhostmask) {
notice_lang(s_HostServ, u, HOST_SETALL_SYNTAX, s_HostServ);
- free(vIdent);
- free(hostmask);
+ delete [] vIdent;
+ delete [] hostmask;
return MOD_CONT;
}
if (strlen(vIdent) > USERMAX - 1) {
notice_lang(s_HostServ, u, HOST_SET_IDENTTOOLONG, USERMAX);
- free(vIdent);
- free(rawhostmask);
- free(hostmask);
+ delete [] vIdent;
+ delete [] rawhostmask;
+ delete [] hostmask;
return MOD_CONT;
} else {
for (s = vIdent; *s; s++) {
if (!isvalidchar(*s)) {
notice_lang(s_HostServ, u, HOST_SET_IDENT_ERROR);
- free(vIdent);
- free(rawhostmask);
- free(hostmask);
+ delete [] vIdent;
+ delete [] rawhostmask;
+ delete [] hostmask;
return MOD_CONT;
}
}
}
if (!ircd->vident) {
notice_lang(s_HostServ, u, HOST_NO_VIDENT);
- free(vIdent);
- free(rawhostmask);
- free(hostmask);
+ delete [] vIdent;
+ delete [] rawhostmask;
+ delete [] hostmask;
return MOD_CONT;
}
}
@@ -113,20 +113,20 @@ int do_setall(User * u)
else {
notice_lang(s_HostServ, u, HOST_SET_TOOLONG, HOSTMAX);
if (vIdent) {
- free(vIdent);
- free(rawhostmask);
+ delete [] vIdent;
+ delete [] rawhostmask;
}
- free(hostmask);
+ delete [] hostmask;
return MOD_CONT;
}
if (!isValidHost(hostmask, 3)) {
notice_lang(s_HostServ, u, HOST_SET_ERROR);
if (vIdent) {
- free(vIdent);
- free(rawhostmask);
+ delete [] vIdent;
+ delete [] rawhostmask;
}
- free(hostmask);
+ delete [] hostmask;
return MOD_CONT;
}
@@ -136,10 +136,10 @@ int do_setall(User * u)
if (na->status & NS_VERBOTEN) {
notice_lang(s_HostServ, u, NICK_X_FORBIDDEN, nick);
if (vIdent) {
- free(vIdent);
- free(rawhostmask);
+ delete [] vIdent;
+ delete [] rawhostmask;
}
- free(hostmask);
+ delete [] hostmask;
return MOD_CONT;
}
if (vIdent && ircd->vident) {
@@ -158,10 +158,10 @@ int do_setall(User * u)
notice_lang(s_HostServ, u, HOST_NOREG, nick);
}
if (vIdent) {
- free(vIdent);
- free(rawhostmask);
+ delete [] vIdent;
+ delete [] rawhostmask;
}
- free(hostmask);
+ delete [] hostmask;
return MOD_CONT;
}
diff --git a/src/core/ms_del.c b/src/core/ms_del.c
index 0924dd7d8..fb620a013 100644
--- a/src/core/ms_del.c
+++ b/src/core/ms_del.c
@@ -6,8 +6,8 @@
* Please read COPYING and README for further details.
*
* Based on the original code of Epona by Lara.
- * Based on the original code of Services by Andy Church.
- *
+ * Based on the original code of Services by Andy Church.
+ *
* $Id$
*
*/
@@ -135,7 +135,7 @@ int do_del(User * u)
} else {
/* Delete all memos. */
for (i = 0; i < mi->memocount; i++) {
- free(mi->memos[i].text);
+ delete [] mi->memos[i].text;
}
free(mi->memos);
mi->memos = NULL;
diff --git a/src/core/ns_access.c b/src/core/ns_access.c
index 502268cdf..c4409928d 100644
--- a/src/core/ns_access.c
+++ b/src/core/ns_access.c
@@ -6,8 +6,8 @@
* Please read COPYING and README for further details.
*
* Based on the original code of Epona by Lara.
- * Based on the original code of Services by Andy Church.
- *
+ * Based on the original code of Services by Andy Church.
+ *
* $Id$
*
*/
@@ -142,7 +142,7 @@ int do_access(User * u)
}
notice_lang(s_NickServ, u, NICK_ACCESS_DELETED, *access);
- free(*access);
+ delete [] *access;
na->nc->accesscount--;
if (i < na->nc->accesscount) /* if it wasn't the last entry... */
memmove(access, access + 1,
diff --git a/src/core/ns_drop.c b/src/core/ns_drop.c
index 1d528dd45..77721815a 100644
--- a/src/core/ns_drop.c
+++ b/src/core/ns_drop.c
@@ -127,7 +127,7 @@ int do_drop(User * u)
else
notice_lang(s_NickServ, u, NICK_DROPPED);
if (my_nick) {
- free(my_nick);
+ delete [] my_nick;
}
}
}
diff --git a/src/core/ns_forbid.c b/src/core/ns_forbid.c
index 7783024fb..427a2db5c 100644
--- a/src/core/ns_forbid.c
+++ b/src/core/ns_forbid.c
@@ -132,7 +132,7 @@ NickAlias *makenick(const char *nick)
alog("%s: group %s has been created", s_NickServ, nc->display);
/* Then make the alias */
- na = (NickAlias *)scalloc(1, sizeof(NickAlias));
+ na = new NickAlias;
na->nick = sstrdup(nick);
na->nc = nc;
slist_add(&nc->aliases, na);
diff --git a/src/core/ns_group.c b/src/core/ns_group.c
index 14ce0386f..c40d961ac 100644
--- a/src/core/ns_group.c
+++ b/src/core/ns_group.c
@@ -6,8 +6,8 @@
* Please read COPYING and README for further details.
*
* Based on the original code of Epona by Lara.
- * Based on the original code of Services by Andy Church.
- *
+ * Based on the original code of Services by Andy Church.
+ *
* $Id$
*
*/
@@ -177,9 +177,7 @@ int do_group(User * u)
na = makealias(u->nick, target->nc);
if (na) {
- na->last_usermask =
- (char *)scalloc(strlen(common_get_vident(u)) +
- strlen(common_get_vhost(u)) + 2, 1);
+ na->last_usermask = new char[strlen(common_get_vident(u)) + strlen(common_get_vhost(u)) + 2];
sprintf(na->last_usermask, "%s@%s", common_get_vident(u),
common_get_vhost(u));
na->last_realname = sstrdup(u->realname);
@@ -208,7 +206,7 @@ int do_group(User * u)
if (ircd->modeonreg) {
len = strlen(ircd->modeonreg);
strncpy(modes,ircd->modeonreg,512);
- if(ircd->rootmodeonid && is_services_root(u)) {
+ if(ircd->rootmodeonid && is_services_root(u)) {
strncat(modes,ircd->rootmodeonid,512-len);
} else if(ircd->adminmodeonid && is_services_admin(u)) {
strncat(modes,ircd->adminmodeonid,512-len);
@@ -239,7 +237,7 @@ NickAlias *makealias(const char *nick, NickCore * nc)
NickAlias *na;
/* Just need to make the alias */
- na = (NickAlias *)scalloc(1, sizeof(NickAlias));
+ na = new NickAlias;
na->nick = sstrdup(nick);
na->nc = nc;
slist_add(&nc->aliases, na);
diff --git a/src/core/ns_identify.c b/src/core/ns_identify.c
index cd92731aa..ee328ef19 100644
--- a/src/core/ns_identify.c
+++ b/src/core/ns_identify.c
@@ -6,8 +6,8 @@
* Please read COPYING and README for further details.
*
* Based on the original code of Epona by Lara.
- * Based on the original code of Services by Andy Church.
- *
+ * Based on the original code of Services by Andy Church.
+ *
* $Id$
*
*/
@@ -93,14 +93,12 @@ int do_identify(User * u)
} else {
if (!(na->status & NS_IDENTIFIED) && !(na->status & NS_RECOGNIZED)) {
if (na->last_usermask)
- free(na->last_usermask);
- na->last_usermask =
- (char *)scalloc(strlen(common_get_vident(u)) +
- strlen(common_get_vhost(u)) + 2, 1);
+ delete [] na->last_usermask;
+ na->last_usermask = new char[strlen(common_get_vident(u)) + strlen(common_get_vhost(u)) + 2];
sprintf(na->last_usermask, "%s@%s", common_get_vident(u),
common_get_vhost(u));
if (na->last_realname)
- free(na->last_realname);
+ delete [] na->last_realname;
na->last_realname = sstrdup(u->realname);
}
@@ -112,7 +110,7 @@ int do_identify(User * u)
if (ircd->modeonreg) {
len = strlen(ircd->modeonreg);
strncpy(modes,ircd->modeonreg,512);
- if(ircd->rootmodeonid && is_services_root(u)) {
+ if(ircd->rootmodeonid && is_services_root(u)) {
strncat(modes,ircd->rootmodeonid,512-len);
} else if(ircd->adminmodeonid && is_services_admin(u)) {
strncat(modes,ircd->adminmodeonid,512-len);
diff --git a/src/core/ns_list.c b/src/core/ns_list.c
index f00160226..46863e209 100644
--- a/src/core/ns_list.c
+++ b/src/core/ns_list.c
@@ -109,13 +109,13 @@ int do_list(User * u)
}
for (s = tmp; *s; s++) {
if (!isdigit(*s)) {
- free(tmp);
+ delete [] tmp;
notice_lang(s_ChanServ, u, LIST_INCORRECT_RANGE);
return MOD_CONT;
}
}
from = atoi(tmp);
- free(tmp);
+ delete [] tmp;
tmp = myStrGetTokenRemainder(pattern, '-', 1); /* Read TO out */
if (!tmp) {
notice_lang(s_ChanServ, u, LIST_INCORRECT_RANGE);
@@ -123,13 +123,13 @@ int do_list(User * u)
}
for (s = tmp; *s; s++) {
if (!isdigit(*s)) {
- free(tmp);
+ delete [] tmp;
notice_lang(s_ChanServ, u, LIST_INCORRECT_RANGE);
return MOD_CONT;
}
}
to = atoi(tmp);
- free(tmp);
+ delete [] tmp;
pattern = sstrdup("*");
tofree = 1;
}
@@ -229,7 +229,7 @@ int do_list(User * u)
nnicks > NSListMax ? NSListMax : nnicks, nnicks);
}
if (tofree)
- free(pattern);
+ delete [] pattern;
return MOD_CONT;
}
diff --git a/src/core/ns_register.c b/src/core/ns_register.c
index 780101b98..692c21531 100644
--- a/src/core/ns_register.c
+++ b/src/core/ns_register.c
@@ -277,12 +277,16 @@ int do_confirm(User * u)
if (stricmp(nr->passcode, passcode) != 0) {
notice_lang(s_NickServ, u, NICK_CONFIRM_INVALID);
+ if (forced)
+ delete [] passcode;
return MOD_CONT;
}
}
if (!nr) {
notice_lang(s_NickServ, u, NICK_REGISTRATION_FAILED);
+ if (forced)
+ delete [] passcode;
return MOD_CONT;
}
@@ -314,9 +318,7 @@ int do_confirm(User * u)
na->last_usermask = sstrdup("*@*");
na->last_realname = sstrdup("unknown");
} else {
- na->last_usermask =
- (char *)scalloc(strlen(common_get_vident(u)) +
- strlen(common_get_vhost(u)) + 2, 1);
+ na->last_usermask = new char[strlen(common_get_vident(u)) + strlen(common_get_vhost(u)) + 2];
sprintf(na->last_usermask, "%s@%s", common_get_vident(u),
common_get_vhost(u));
na->last_realname = sstrdup(u->realname);
@@ -383,6 +385,11 @@ int do_confirm(User * u)
if (NSNickTracking)
nsStartNickTracking(u);
+ if (forced)
+ delete [] passcode;
+ if (email)
+ delete [] email;
+
return MOD_CONT;
}
@@ -390,7 +397,7 @@ NickRequest *makerequest(const char *nick)
{
NickRequest *nr;
- nr = (NickRequest *)scalloc(1, sizeof(NickRequest));
+ nr = new NickRequest;
nr->nick = sstrdup(nick);
insert_requestnick(nr);
alog("%s: Nick %s has been requested", s_NickServ, nr->nick);
@@ -412,7 +419,7 @@ NickAlias *makenick(const char *nick)
alog("%s: group %s has been created", s_NickServ, nc->display);
/* Then make the alias */
- na = (NickAlias *)scalloc(1, sizeof(NickAlias));
+ na = new NickAlias;
na->nick = sstrdup(nick);
na->nc = nc;
slist_add(&nc->aliases, na);
diff --git a/src/core/ns_saset.c b/src/core/ns_saset.c
index a1e922a4e..54fb2fc0f 100644
--- a/src/core/ns_saset.c
+++ b/src/core/ns_saset.c
@@ -241,7 +241,7 @@ int do_saset_password(User * u, NickCore * nc, char *param)
int do_saset_url(User * u, NickCore * nc, char *param)
{
if (nc->url)
- free(nc->url);
+ delete [] nc->url;
if (param) {
nc->url = sstrdup(param);
@@ -274,7 +274,7 @@ int do_saset_email(User * u, NickCore * nc, char *param)
(nc->email ? nc->email : "none"));
if (nc->email)
- free(nc->email);
+ delete [] nc->email;
if (param) {
nc->email = sstrdup(param);
@@ -308,7 +308,7 @@ int do_saset_icq(User * u, NickCore * nc, char *param)
int do_saset_greet(User * u, NickCore * nc, char *param)
{
if (nc->greet)
- free(nc->greet);
+ delete [] nc->greet;
if (param) {
char buf[BUFSIZE];
diff --git a/src/core/ns_set.c b/src/core/ns_set.c
index b6c91b281..4267f46b2 100644
--- a/src/core/ns_set.c
+++ b/src/core/ns_set.c
@@ -6,8 +6,8 @@
* Please read COPYING and README for further details.
*
* Based on the original code of Epona by Lara.
- * Based on the original code of Services by Andy Church.
- *
+ * Based on the original code of Services by Andy Church.
+ *
* $Id$
*
*/
@@ -233,7 +233,7 @@ int do_set_language(User * u, NickCore * nc, char *param)
int do_set_url(User * u, NickCore * nc, char *param)
{
if (nc->url)
- free(nc->url);
+ delete [] nc->url;
if (param) {
nc->url = sstrdup(param);
@@ -260,7 +260,7 @@ int do_set_email(User * u, NickCore * nc, char *param)
(nc->email ? nc->email : "none"), (param ? param : "none"));
if (nc->email)
- free(nc->email);
+ delete [] nc->email;
if (param) {
nc->email = sstrdup(param);
@@ -292,7 +292,7 @@ int do_set_icq(User * u, NickCore * nc, char *param)
int do_set_greet(User * u, NickCore * nc, char *param)
{
if (nc->greet)
- free(nc->greet);
+ delete [] nc->greet;
if (param) {
char buf[BUFSIZE];
diff --git a/src/core/ns_update.c b/src/core/ns_update.c
index 76794a86d..9c53886c1 100644
--- a/src/core/ns_update.c
+++ b/src/core/ns_update.c
@@ -6,8 +6,8 @@
* Please read COPYING and README for further details.
*
* Based on the original code of Epona by Lara.
- * Based on the original code of Services by Andy Church.
- *
+ * Based on the original code of Services by Andy Church.
+ *
* $Id$
*
*/
@@ -64,7 +64,7 @@ int do_nickupdate(User * u)
do_setmodes(u);
check_memos(u);
if (na->last_realname)
- free(na->last_realname);
+ delete [] na->last_realname;
na->last_realname = sstrdup(u->realname);
na->status |= NS_IDENTIFIED;
na->last_seen = time(NULL);
diff --git a/src/core/os_akill.c b/src/core/os_akill.c
index c67433013..a85c50cb1 100644
--- a/src/core/os_akill.c
+++ b/src/core/os_akill.c
@@ -130,7 +130,7 @@ int do_akill(User * u)
deleted = add_akill(u, mask, u->nick, expires, reason);
if (deleted < 0) {
if (AddAkiller) {
- free(reason);
+ delete [] reason;
}
return MOD_CONT;
} else if (deleted) {
@@ -173,7 +173,7 @@ int do_akill(User * u)
notice_lang(s_OperServ, u, READ_ONLY_MODE);
}
if (AddAkiller) {
- free(reason);
+ delete [] reason;
}
} else {
syntax_error(s_OperServ, u, "AKILL", OPER_AKILL_SYNTAX);
diff --git a/src/core/os_chankill.c b/src/core/os_chankill.c
index 881dee421..a69f1c6ec 100644
--- a/src/core/os_chankill.c
+++ b/src/core/os_chankill.c
@@ -111,7 +111,7 @@ int do_chankill(User * u)
notice_lang(s_OperServ, u, CHAN_X_NOT_IN_USE, channel);
}
if (AddAkiller) {
- free(reason);
+ delete [] reason;
}
} else {
syntax_error(s_OperServ, u, "CHANKILL", OPER_CHANKILL_SYNTAX);
diff --git a/src/core/os_kick.c b/src/core/os_kick.c
index fd47318fe..26a2e7abc 100644
--- a/src/core/os_kick.c
+++ b/src/core/os_kick.c
@@ -80,9 +80,9 @@ int do_os_kick(User * u)
argv[1] = sstrdup(nick);
argv[2] = sstrdup(s);
do_kick(s_OperServ, 3, argv);
- free((void *)argv[2]);
- free((void *)argv[1]);
- free((void *)argv[0]);
+ delete [] argv[2];
+ delete [] argv[1];
+ delete [] argv[0];
return MOD_CONT;
}
diff --git a/src/core/os_logonnews.c b/src/core/os_logonnews.c
index 0d26a543e..6588362de 100644
--- a/src/core/os_logonnews.c
+++ b/src/core/os_logonnews.c
@@ -6,8 +6,8 @@
* Please read COPYING and README for further details.
*
* Based on the original code of Epona by Lara.
- * Based on the original code of Services by Andy Church.
- *
+ * Based on the original code of Services by Andy Church.
+ *
* $Id$
*
*/
@@ -33,7 +33,7 @@ class OSLogonNews : public Module
this->SetVersion("$Id$");
this->SetType(CORE);
- /**
+ /**
* For some unknown reason, do_logonnews is actaully defined in news.c
* we can look at moving it here later
**/
@@ -54,7 +54,7 @@ class OSLogonNews : public Module
~OSLogonNews()
{
- free(c->help_param1);
+ delete [] c->help_param1;
}
};
@@ -80,7 +80,7 @@ int reload_config(int argc, char **argv) {
if (argc >= 1) {
if (!stricmp(argv[0], EVENT_START)) {
- free(c->help_param1);
+ delete [] 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 82fed8e76..69550267e 100644
--- a/src/core/os_opernews.c
+++ b/src/core/os_opernews.c
@@ -6,8 +6,8 @@
* Please read COPYING and README for further details.
*
* Based on the original code of Epona by Lara.
- * Based on the original code of Services by Andy Church.
- *
+ * Based on the original code of Services by Andy Church.
+ *
* $Id$
*
*/
@@ -50,7 +50,7 @@ class OSOperNews : public Module
~OSOperNews()
{
- free(c->help_param1);
+ delete [] c->help_param1;
}
};
@@ -74,7 +74,7 @@ int reload_config(int argc, char **argv) {
if (argc >= 1) {
if (!stricmp(argv[0], EVENT_START)) {
- free(c->help_param1);
+ delete [] c->help_param1;
snprintf(buf, BUFSIZE, "%d", NewsCount),
c->help_param1 = sstrdup(buf);
}
diff --git a/src/core/os_quit.c b/src/core/os_quit.c
index 019cf9617..a06bb6966 100644
--- a/src/core/os_quit.c
+++ b/src/core/os_quit.c
@@ -6,8 +6,8 @@
* Please read COPYING and README for further details.
*
* Based on the original code of Epona by Lara.
- * Based on the original code of Services by Andy Church.
- *
+ * Based on the original code of Services by Andy Church.
+ *
* $Id$
*
*/
@@ -55,7 +55,7 @@ void myOperServHelp(User * u)
**/
int do_os_quit(User * u)
{
- quitmsg = (char *)calloc(28 + strlen(u->nick), 1);
+ quitmsg = new char[28 + strlen(u->nick)];
if (!quitmsg)
quitmsg = "QUIT command received, but out of memory!";
else
diff --git a/src/core/os_reload.c b/src/core/os_reload.c
index 514fa42e7..9e4495ec4 100644
--- a/src/core/os_reload.c
+++ b/src/core/os_reload.c
@@ -6,8 +6,8 @@
* Please read COPYING and README for further details.
*
* Based on the original code of Epona by Lara.
- * Based on the original code of Services by Andy Church.
- *
+ * Based on the original code of Services by Andy Church.
+ *
* $Id$
*
*/
@@ -56,7 +56,7 @@ void myOperServHelp(User * u)
int do_reload(User * u)
{
if (!read_config(1)) {
- quitmsg = (char *)calloc(28 + strlen(u->nick), 1);
+ quitmsg = new char[28 + strlen(u->nick)];
if (!quitmsg)
quitmsg =
"Error during the reload of the configuration file, but out of memory!";
diff --git a/src/core/os_restart.c b/src/core/os_restart.c
index e690de97e..fe0f8ddb7 100644
--- a/src/core/os_restart.c
+++ b/src/core/os_restart.c
@@ -6,8 +6,8 @@
* Please read COPYING and README for further details.
*
* Based on the original code of Epona by Lara.
- * Based on the original code of Services by Andy Church.
- *
+ * Based on the original code of Services by Andy Church.
+ *
* $Id$
*
*/
@@ -60,7 +60,7 @@ void myOperServHelp(User * u)
int do_restart(User * u)
{
#ifdef SERVICES_BIN
- quitmsg = (char *)calloc(31 + strlen(u->nick), 1);
+ quitmsg = new char[31 + strlen(u->nick)];
if (!quitmsg)
quitmsg = "RESTART command received, but out of memory!";
else
diff --git a/src/core/os_shutdown.c b/src/core/os_shutdown.c
index 03099e410..32ab16141 100644
--- a/src/core/os_shutdown.c
+++ b/src/core/os_shutdown.c
@@ -6,8 +6,8 @@
* Please read COPYING and README for further details.
*
* Based on the original code of Epona by Lara.
- * Based on the original code of Services by Andy Church.
- *
+ * Based on the original code of Services by Andy Church.
+ *
* $Id$
*
*/
@@ -55,7 +55,7 @@ void myOperServHelp(User * u)
**/
int do_shutdown(User * u)
{
- quitmsg = (char *)calloc(32 + strlen(u->nick), 1);
+ quitmsg = new char[32 + strlen(u->nick)];
if (!quitmsg)
quitmsg = "SHUTDOWN command received, but out of memory!";
else
diff --git a/src/datafiles.c b/src/datafiles.c
index 5fcacf33e..d14e47343 100644
--- a/src/datafiles.c
+++ b/src/datafiles.c
@@ -80,7 +80,7 @@ static dbFILE *open_db_read(const char *service, const char *filename)
dbFILE *f;
FILE *fp;
- f = (dbFILE *)scalloc(sizeof(*f), 1);
+ f = new dbFILE;
if (!f) {
log_perror("Can't read %s database %s", service, filename);
if (time(NULL) - lastwarn > WarningTimeout) {
@@ -104,7 +104,7 @@ static dbFILE *open_db_read(const char *service, const char *filename)
strerror(errno));
lastwarn = time(NULL);
}
- free(f);
+ delete f;
errno = errno_save;
return NULL;
}
@@ -137,7 +137,7 @@ static dbFILE *open_db_write(const char *service, const char *filename,
}
#endif
- f = (dbFILE *)scalloc(sizeof(*f), 1);
+ f = new dbFILE;
if (!f) {
log_perror("Can not read %s database %s", service, filename);
return NULL;
@@ -158,7 +158,7 @@ static dbFILE *open_db_write(const char *service, const char *filename,
int errno_save = errno;
alog("Opening %s database %s for write: Filename too long",
service, filename);
- free(f);
+ delete f;
errno = errno_save;
return NULL;
}
@@ -203,7 +203,7 @@ static dbFILE *open_db_write(const char *service, const char *filename,
if (!NoBackupOkay) {
if (f->backupfp)
fclose(f->backupfp);
- free(f);
+ delete f;
errno = errno_save;
return NULL;
}
@@ -244,7 +244,7 @@ static dbFILE *open_db_write(const char *service, const char *filename,
/* Then the Lord said unto Moses, thou shalt free what thou hast malloced
* -- codemastr */
- free(f);
+ delete f;
errno = errno_save;
return NULL;
}
@@ -331,7 +331,7 @@ void restore_db(dbFILE * f)
fclose(f->fp);
if (!errno_save)
errno_save = errno;
- free(f);
+ delete f;
errno = errno_save;
}
@@ -356,7 +356,7 @@ void close_db(dbFILE * f)
#endif
}
fclose(f->fp);
- free(f);
+ delete f;
}
/*************************************************************************/
@@ -506,9 +506,9 @@ int read_string(char **ret, dbFILE * f)
*ret = NULL;
return 0;
}
- s = (char *)scalloc(len, 1);
+ s = new char[len];
if (len != fread(s, 1, len, f->fp)) {
- free(s);
+ delete [] s;
return -1;
}
*ret = s;
diff --git a/src/events.c b/src/events.c
index 237dbb9f3..1804f9260 100644
--- a/src/events.c
+++ b/src/events.c
@@ -31,7 +31,7 @@ void send_event(const char *name, int argc, ...)
int idx = 0;
char **argv;
- argv = (char **) malloc(sizeof(char *) * argc);
+ argv = new char *[argc];
va_start(va, argc);
for (idx = 0; idx < argc; idx++) {
a = va_arg(va, char *);
@@ -48,9 +48,9 @@ void send_event(const char *name, int argc, ...)
* Now that the events have seen the message, free it up
**/
for (idx = 0; idx < argc; idx++) {
- free(argv[idx]);
+ delete [] argv[idx];
}
- free(argv);
+ delete [] argv;
}
void event_process_hook(const char *name, int argc, char **argv)
@@ -139,7 +139,7 @@ EvtHook *createEventHook(const char *name, int (*func) (int argc, char **argv))
if (!func) {
return NULL;
}
- if ((evh = (EvtHook *)malloc(sizeof(EvtHook))) == NULL) {
+ if (!(evh = new EvtHook)) {
fatal("Out of memory!");
}
evh->name = sstrdup(name);
@@ -205,7 +205,7 @@ int addEventHook(EvtHookHash * hookEvtTable[], EvtHook * evh)
lastHash = current;
}
- if ((newHash = (EvtHookHash *)malloc(sizeof(EvtHookHash))) == NULL) {
+ if (!(newHash = new EvtHookHash)) {
fatal("Out of memory");
}
newHash->next = NULL;
@@ -311,7 +311,7 @@ int delEventHook(EvtHookHash * hookEvtTable[], EvtHook * evh,
}
} else {
hookEvtTable[index] = current->next;
- free(current->name);
+ delete [] current->name;
return MOD_ERR_OK;
}
} else {
@@ -332,7 +332,7 @@ int delEventHook(EvtHookHash * hookEvtTable[], EvtHook * evh,
}
} else {
lastHash->next = current->next;
- free(current->name);
+ delete [] current->name;
return MOD_ERR_OK;
}
}
@@ -353,11 +353,11 @@ int destroyEventHook(EvtHook * evh)
return MOD_ERR_PARAMS;
}
if (evh->name) {
- free(evh->name);
+ delete [] evh->name;
}
evh->func = NULL;
if (evh->mod_name) {
- free(evh->mod_name);
+ delete [] evh->mod_name;
}
evh->next = NULL;
return MOD_ERR_OK;
diff --git a/src/hostserv.c b/src/hostserv.c
index de3960273..93515fb04 100644
--- a/src/hostserv.c
+++ b/src/hostserv.c
@@ -38,7 +38,7 @@ void moduleAddHostServCmds(void)
/**
* Return information on memory use.
- * Assumes pointers are valid.
+ * Assumes pointers are valid.
**/
void get_hostserv_stats(long *nrec, long *memuse)
@@ -129,16 +129,16 @@ HostCore *createHostCorelist(HostCore * next, char *nick, char *vIdent,
char *vHost, const char *creator, int32 tmp_time)
{
- next = (HostCore *)malloc(sizeof(HostCore));
+ next = new HostCore;
if (next == NULL) {
ircdproto->SendGlobops(s_HostServ,
"Unable to allocate memory to create the vHost LL, problems i sense..");
} else {
- next->nick = (char *)malloc(sizeof(char) * strlen(nick) + 1);
- next->vHost = (char *)malloc(sizeof(char) * strlen(vHost) + 1);
- next->creator = (char *)malloc(sizeof(char) * strlen(creator) + 1);
+ next->nick = new char[strlen(nick) + 1];
+ next->vHost = new char[strlen(vHost) + 1];
+ next->creator = new char[strlen(creator) + 1];
if (vIdent)
- next->vIdent = (char *)malloc(sizeof(char) * strlen(vIdent) + 1);
+ next->vIdent = new char[strlen(vIdent) + 1];
if ((next->nick == NULL) || (next->vHost == NULL)
|| (next->creator == NULL)) {
ircdproto->SendGlobops(s_HostServ,
@@ -217,17 +217,17 @@ HostCore *insertHostCore(HostCore * phead, HostCore * prev, char *nick,
return NULL;
}
- newCore = (HostCore *)malloc(sizeof(HostCore));
+ newCore = new HostCore;
if (newCore == NULL) {
ircdproto->SendGlobops(s_HostServ,
"Unable to allocate memory to insert into the vHost LL, problems i sense..");
return NULL;
} else {
- newCore->nick = (char *)malloc(sizeof(char) * strlen(nick) + 1);
- newCore->vHost = (char *)malloc(sizeof(char) * strlen(vHost) + 1);
- newCore->creator = (char *)malloc(sizeof(char) * strlen(creator) + 1);
+ newCore->nick = new char[strlen(nick) + 1];
+ newCore->vHost = new char[strlen(vHost) + 1];
+ newCore->creator = new char[strlen(creator) + 1];
if (vIdent)
- newCore->vIdent = (char *)malloc(sizeof(char) * strlen(vIdent) + 1);
+ newCore->vIdent = new char[strlen(vIdent) + 1];
if ((newCore->nick == NULL) || (newCore->vHost == NULL)
|| (newCore->creator == NULL)) {
ircdproto->SendGlobops(s_HostServ,
@@ -274,13 +274,13 @@ HostCore *deleteHostCore(HostCore * phead, HostCore * prev)
tmp = prev->next;
prev->next = tmp->next;
}
- free(tmp->vHost);
- free(tmp->nick);
- free(tmp->creator);
+ delete [] tmp->vHost;
+ delete [] tmp->nick;
+ delete [] tmp->creator;
if (tmp->vIdent) {
- free(tmp->vIdent);
+ delete [] tmp->vIdent;
}
- free(tmp);
+ delete tmp;
return phead;
}
@@ -404,10 +404,10 @@ void load_hs_dbase(dbFILE * f)
SAFE(read_string(&creator, f));
SAFE(read_int32(&time, f));
addHostCore(nick, vIdent, vHost, creator, time); /* could get a speed increase by not searching the list */
- free(nick); /* as we know the db is in alphabetical order... */
- free(vHost);
- free(creator);
- free(vIdent);
+ delete [] nick; /* as we know the db is in alphabetical order... */
+ delete [] vHost;
+ delete [] creator;
+ delete [] vIdent;
} else {
fatal("Invalid format in %s %d", HostDBName, c);
}
@@ -539,11 +539,9 @@ int is_host_remover(User * u)
void set_lastmask(User * u)
{
if (u->na->last_usermask)
- free(u->na->last_usermask);
+ delete [] u->na->last_usermask;
- u->na->last_usermask =
- (char *)smalloc(strlen(common_get_vident(u)) +
- strlen(common_get_vhost(u)) + 2);
+ u->na->last_usermask = new char[strlen(common_get_vident(u)) + strlen(common_get_vhost(u)) + 2];
sprintf(u->na->last_usermask, "%s@%s", common_get_vident(u),
common_get_vhost(u));
diff --git a/src/init.c b/src/init.c
index e9042adeb..d6122fa3e 100644
--- a/src/init.c
+++ b/src/init.c
@@ -430,7 +430,7 @@ int init_secondary(int ac, char **av)
alog("%s is not a supported version of Windows", winver);
- free(winver);
+ delete [] winver;
return -1;
diff --git a/src/language.c b/src/language.c
index e99dc0862..4e869191a 100644
--- a/src/language.c
+++ b/src/language.c
@@ -6,9 +6,9 @@
* Please read COPYING and README for further details.
*
* Based on the original code of Epona by Lara.
- * Based on the original code of Services by Andy Church.
- *
- * $Id$
+ * Based on the original code of Services by Andy Church.
+ *
+ * $Id$
*
*/
@@ -88,7 +88,7 @@ static void load_lang(int index, const char *filename)
alog("Warning: Bad number of strings (%d, wanted %d) "
"for language %d (%s)", num, NUM_STRINGS, index, filename);
}
- langtexts[index] = (char **)scalloc(sizeof(char *), NUM_STRINGS);
+ langtexts[index] = new char *[NUM_STRINGS];
if (num > NUM_STRINGS)
num = NUM_STRINGS;
for (i = 0; i < num; i++) {
@@ -99,9 +99,9 @@ static void load_lang(int index, const char *filename)
i, index, filename);
while (--i >= 0) {
if (langtexts[index][i])
- free(langtexts[index][i]);
+ delete [] langtexts[index][i];
}
- free(langtexts[index]);
+ delete [] langtexts[index];
langtexts[index] = NULL;
return;
}
@@ -112,9 +112,9 @@ static void load_lang(int index, const char *filename)
"corrupt TOC?", i, index, filename);
while (--i >= 0) {
if (langtexts[index][i])
- free(langtexts[index][i]);
+ delete [] langtexts[index][i];
}
- free(langtexts[index]);
+ delete [] langtexts[index];
langtexts[index] = NULL;
return;
} else if (len < 0) {
@@ -122,22 +122,22 @@ static void load_lang(int index, const char *filename)
"corrupt TOC?", i, index, filename);
while (--i >= 0) {
if (langtexts[index][i])
- free(langtexts[index][i]);
+ delete [] langtexts[index][i];
}
- free(langtexts[index]);
+ delete [] langtexts[index];
langtexts[index] = NULL;
return;
} else {
- langtexts[index][i] = (char *)scalloc(len + 1, 1);
+ langtexts[index][i] = new char[len + 1];
fseek(f, pos, SEEK_SET);
if (fread(langtexts[index][i], 1, len, f) != len) {
alog("Failed to read string %d in language %d (%s)",
i, index, filename);
while (--i >= 0) {
if (langtexts[index][i])
- free(langtexts[index][i]);
+ delete [] langtexts[index][i];
}
- free(langtexts[index]);
+ delete [] langtexts[index];
langtexts[index] = NULL;
return;
}
@@ -167,7 +167,7 @@ void lang_sanitize()
strnrepl(tmp, sizeof(tmp), "%R", "/msg ");
}
newstr = sstrdup(tmp);
- free(langtexts[i][j]);
+ delete [] langtexts[i][j];
langtexts[i][j] = newstr;
}
}
diff --git a/src/mail.c b/src/mail.c
index 4aa3b0a2a..005ac97ab 100644
--- a/src/mail.c
+++ b/src/mail.c
@@ -45,13 +45,13 @@ MailInfo *MailRegBegin(User * u, NickRequest * nr, char *subject,
} else {
MailInfo *mail;
- mail = (MailInfo *)scalloc(sizeof(MailInfo), 1);
+ mail = new MailInfo;
mail->sender = u;
mail->recipient = NULL;
mail->recip = nr;
if (!(mail->pipe = popen(SendMailPath, "w"))) {
- free(mail);
+ delete mail;
notice_lang(service, u, MAIL_LATER);
return NULL;
}
@@ -98,13 +98,13 @@ MailInfo *MailBegin(User * u, NickCore * nc, char *subject, char *service)
} else {
MailInfo *mail;
- mail = (MailInfo *)scalloc(sizeof(MailInfo), 1);
+ mail = new MailInfo;
mail->sender = u;
mail->recipient = nc;
mail->recip = NULL;
if (!(mail->pipe = popen(SendMailPath, "w"))) {
- free(mail);
+ delete mail;
notice_lang(service, u, MAIL_LATER);
return NULL;
}
@@ -143,13 +143,13 @@ MailInfo *MailMemoBegin(NickCore * nc)
} else {
MailInfo *mail;
- mail = (MailInfo *)scalloc(sizeof(MailInfo), 1);
+ mail = new MailInfo;
mail->sender = NULL;
mail->recipient = nc;
mail->recip = NULL;
if (!(mail->pipe = popen(SendMailPath, "w"))) {
- free(mail);
+ delete mail;
return NULL;
}
@@ -199,7 +199,7 @@ void MailEnd(MailInfo * mail)
mail->recip->lastmail = time(NULL);
- free(mail);
+ delete mail;
}
/*************************************************************************/
diff --git a/src/main.c b/src/main.c
index ff4968ed3..59c63c1fc 100644
--- a/src/main.c
+++ b/src/main.c
@@ -226,10 +226,12 @@ static void services_shutdown(void)
alog("%s", quitmsg);
if (started) {
ircdproto->SendSquit(ServerName, quitmsg);
- Anope_Free(uplink);
- Anope_Free(mod_current_buffer);
+ if (uplink)
+ delete [] uplink;
+ if (mod_current_buffer)
+ delete [] mod_current_buffer;
if (ircd->chanmodes) {
- Anope_Free(ircd->chanmodes);
+ delete [] ircd->chanmodes;
}
u = firstuser();
while (u) {
@@ -413,7 +415,7 @@ void sighandler(int signum)
#ifndef _WIN32
signum == SIGUSR1 ||
#endif
- !(quitmsg = (const char *)calloc(BUFSIZE, 1))) {
+ !(quitmsg = new char[BUFSIZE])) {
quitmsg = "Out of memory!";
} else {
snprintf((char *)quitmsg, BUFSIZE, "Services terminating on signal %d", signum);
@@ -472,7 +474,7 @@ int main(int ac, char **av, char **envp)
* This fixes bug #589.
* -- heinz
*/
- binary_dir = smalloc(MAX_PATH);
+ binary_dir = new char[MAX_PATH];
if (!getcwd(binary_dir, MAX_PATH)) {
fprintf(stderr, "error: getcwd() error\n");
return -1;
@@ -558,7 +560,7 @@ int main(int ac, char **av, char **envp)
process();
} else if (i == 0) {
int errno_save = errno;
- quitmsg = (const char *)scalloc(BUFSIZE, 1);
+ quitmsg = new char[BUFSIZE];
if (quitmsg) {
// Naughty, but oh well. :)
snprintf((char *)quitmsg, BUFSIZE,
@@ -610,7 +612,7 @@ int main(int ac, char **av, char **envp)
#ifdef _WIN32
if (binary_dir)
- free(binary_dir);
+ delete [] binary_dir;
#endif
return 0;
@@ -647,7 +649,7 @@ void do_backtrace(int show_segheader)
char *winver;
winver = GetWindowsVersion();
alog("Backtrace: not available on Windows");
- alog("Running %S", winver);
- free(winver);
+ alog("Running %s", winver);
+ delete [] winver;
#endif
}
diff --git a/src/memory.c b/src/memory.c
index 30fe46627..cf928021b 100644
--- a/src/memory.c
+++ b/src/memory.c
@@ -6,9 +6,9 @@
* Please read COPYING and README for further details.
*
* Based on the original code of Epona by Lara.
- * Based on the original code of Services by Andy Church.
- *
- * $Id$
+ * Based on the original code of Services by Andy Church.
+ *
+ * $Id$
*
*/
@@ -107,19 +107,14 @@ char *sstrdup(const char *src)
{
char *ret = NULL;
if (src) {
-#ifdef __STRICT_ANSI__
- if ((ret = (char *) malloc(strlen(src) + 1))) {;
- strcpy(ret, src);
- }
-#else
- ret = strdup(src);
-#endif
+ ret = new char[strlen(src) + 1];
if (!ret)
#ifndef _WIN32
raise(SIGUSR1);
#else
abort();
#endif
+ strcpy(ret, src);
} else {
alog("sstrdup() called with NULL-arg");
if (debug)
diff --git a/src/memoserv.c b/src/memoserv.c
index d9bd61b93..35c433e4d 100644
--- a/src/memoserv.c
+++ b/src/memoserv.c
@@ -345,7 +345,7 @@ int delmemo(MemoInfo * mi, int num)
break;
}
if (i < mi->memocount) {
- free(mi->memos[i].text); /* Deallocate memo text memory */
+ delete [] mi->memos[i].text; /* Deallocate memo text memory */
mi->memocount--; /* One less memo now */
if (i < mi->memocount) /* Move remaining memos down a slot */
memmove(mi->memos + i, mi->memos + i + 1,
diff --git a/src/misc.c b/src/misc.c
index 77eee30cc..437d9ece4 100644
--- a/src/misc.c
+++ b/src/misc.c
@@ -777,7 +777,7 @@ char *myStrSubString(const char *src, int start, int end)
}
len = strlen(src);
if (((start >= 0) && (end <= len)) && (end > start)) {
- substring = (char *) malloc(sizeof(char) * ((end - start) + 1));
+ substring = new char[(end - start) + 1];
for (idx = 0; idx <= end - start; idx++) {
substring[idx] = src[start + idx];
}
@@ -865,7 +865,7 @@ int nickIsServices(const char *tempnick, int bot)
if (s) {
*s++ = 0;
if (stricmp(s, ServerName) != 0) {
- free(nick);
+ delete [] nick;
return found;
}
}
@@ -900,7 +900,7 @@ int nickIsServices(const char *tempnick, int bot)
}
/* Somehow, something tells me we should free this :) -GD */
- free(nick);
+ delete [] nick;
return found;
}
@@ -1328,7 +1328,7 @@ char *GetWindowsVersion(void)
snprintf(buf, sizeof(buf), "Microsoft Windows Server 2008 %s%s",
cputype, extra);
}
- free(extra);
+ delete [] extra;
}
/* Windows 2003 or Windows XP Pro 64 */
if (osvi.dwMajorVersion == 5 && osvi.dwMinorVersion == 2) {
@@ -1350,7 +1350,7 @@ char *GetWindowsVersion(void)
snprintf(buf, sizeof(buf),
"Microsoft Windows Server 2003 Family %s%s", cputype, extra);
}
- free(extra);
+ delete [] extra;
}
if (osvi.dwMajorVersion == 5 && osvi.dwMinorVersion == 1) {
if (osvi.wSuiteMask & VER_SUITE_EMBEDDEDNT) {
@@ -1361,7 +1361,7 @@ char *GetWindowsVersion(void)
extra = sstrdup(" ");
}
snprintf(buf, sizeof(buf), "Microsoft Windows XP %s", extra);
- free(extra);
+ delete [] extra;
}
if (osvi.dwMajorVersion == 5 && osvi.dwMinorVersion == 0) {
if (osvi.wSuiteMask & VER_SUITE_DATACENTER) {
@@ -1372,7 +1372,7 @@ char *GetWindowsVersion(void)
extra = sstrdup("Server");
}
snprintf(buf, sizeof(buf), "Microsoft Windows 2000 %s", extra);
- free(extra);
+ delete [] extra;
}
if (osvi.dwMajorVersion <= 4) {
if (osvi.wSuiteMask & VER_SUITE_ENTERPRISE) {
@@ -1381,7 +1381,7 @@ char *GetWindowsVersion(void)
extra = sstrdup("Server 4.0");
}
snprintf(buf, sizeof(buf), "Microsoft Windows NT %s", extra);
- free(extra);
+ delete [] extra;
}
case VER_PLATFORM_WIN32_WINDOWS:
if (osvi.dwMajorVersion == 4 && osvi.dwMinorVersion == 0) {
@@ -1391,7 +1391,7 @@ char *GetWindowsVersion(void)
extra = sstrdup(" ");
}
snprintf(buf, sizeof(buf), "Microsoft Windows 95 %s", extra);
- free(extra);
+ delete [] extra;
}
if (osvi.dwMajorVersion == 4 && osvi.dwMinorVersion == 10) {
if (osvi.szCSDVersion[1] == 'A') {
@@ -1400,14 +1400,14 @@ char *GetWindowsVersion(void)
extra = sstrdup(" ");
}
snprintf(buf, sizeof(buf), "Microsoft Windows 98 %s", extra);
- free(extra);
+ delete [] extra;
}
if (osvi.dwMajorVersion == 4 && osvi.dwMinorVersion == 90) {
snprintf(buf, sizeof(buf),
"Microsoft Windows Millennium Edition");
}
}
- free(cputype);
+ delete [] cputype;
return sstrdup(buf);
}
diff --git a/src/module.cpp b/src/module.cpp
index de72c7f64..2df2aaa58 100644
--- a/src/module.cpp
+++ b/src/module.cpp
@@ -45,7 +45,7 @@ Module::Module(const std::string &mname, const std::string &creator)
lastHash = current;
}
- if ((newHash = (ModuleHash *)malloc(sizeof(ModuleHash))) == NULL) {
+ if (!(newHash = new ModuleHash)) {
fatal("Out of memory");
}
this->created = time(NULL);
@@ -164,8 +164,8 @@ Module::~Module()
} else {
lastHash->next = mhash->next;
}
- free(mhash->name);
- free(mhash);
+ delete [] mhash->name;
+ delete mhash;
}
lastHash = mhash;
}
diff --git a/src/modules.c b/src/modules.c
index 492745497..9ce2f8853 100644
--- a/src/modules.c
+++ b/src/modules.c
@@ -160,8 +160,7 @@ void Module::InsertLanguage(int langNumber, int ac, const char **av)
}
this->lang[langNumber].argc = ac;
- this->lang[langNumber].argv =
- (char **)malloc(sizeof(char *) * ac);
+ this->lang[langNumber].argv = new char *[ac];
for (i = 0; i < ac; i++) {
this->lang[langNumber].argv[i] = sstrdup(av[i]);
}
@@ -215,7 +214,7 @@ Command *createCommand(const char *name, int (*func) (User * u),
return NULL;
}
- if ((c = (Command *)malloc(sizeof(Command))) == NULL) {
+ if (!(c = new Command)) {
fatal("Out of memory!");
}
c->name = sstrdup(name);
@@ -255,7 +254,7 @@ int destroyCommand(Command * c)
return MOD_ERR_UNKNOWN;
}
if (c->name) {
- free(c->name);
+ delete [] c->name;
}
c->routine = NULL;
c->has_priv = NULL;
@@ -264,26 +263,14 @@ int destroyCommand(Command * c)
c->helpmsg_oper = -1;
c->helpmsg_admin = -1;
c->helpmsg_root = -1;
- if (c->help_param1) {
- free(c->help_param1);
- }
- if (c->help_param2) {
- free(c->help_param2);
- }
- if (c->help_param3) {
- free(c->help_param3);
- }
- if (c->help_param4) {
- free(c->help_param4);
- }
if (c->mod_name) {
- free(c->mod_name);
+ delete [] c->mod_name;
}
if (c->service) {
- free(c->service);
+ delete [] c->service;
}
c->next = NULL;
- free(c);
+ delete c;
return MOD_ERR_OK;
}
@@ -342,7 +329,7 @@ static int internal_addCommand(Module *m, CommandHash * cmdTable[], Command * c,
lastHash = current;
}
- if ((newHash = (CommandHash *)malloc(sizeof(CommandHash))) == NULL) {
+ if (!(newHash = new CommandHash)) {
fatal("Out of memory");
}
newHash->next = NULL;
@@ -462,7 +449,7 @@ static int internal_delCommand(CommandHash * cmdTable[], Command * c, const char
}
} else {
cmdTable[index] = current->next;
- free(current->name);
+ delete [] current->name;
return MOD_ERR_OK;
}
} else {
@@ -483,7 +470,7 @@ static int internal_delCommand(CommandHash * cmdTable[], Command * c, const char
}
} else {
lastHash->next = current->next;
- free(current->name);
+ delete [] current->name;
return MOD_ERR_OK;
}
}
@@ -562,7 +549,7 @@ Message *createMessage(const char *name,
if (!name || !func) {
return NULL;
}
- if ((m = (Message *)malloc(sizeof(Message))) == NULL) {
+ if (!(m = new Message)) {
fatal("Out of memory!");
}
m->name = sstrdup(name);
@@ -645,7 +632,7 @@ int addMessage(MessageHash * msgTable[], Message * m, int pos)
lastHash = current;
}
- if ((newHash = (MessageHash *)malloc(sizeof(MessageHash))) == NULL) {
+ if (!(newHash = new MessageHash)) {
fatal("Out of memory");
}
newHash->next = NULL;
@@ -710,7 +697,7 @@ int delMessage(MessageHash * msgTable[], Message * m)
}
} else {
msgTable[index] = current->next;
- free(current->name);
+ delete [] current->name;
return MOD_ERR_OK;
}
} else {
@@ -728,7 +715,7 @@ int delMessage(MessageHash * msgTable[], Message * m)
}
} else {
lastHash->next = current->next;
- free(current->name);
+ delete [] current->name;
return MOD_ERR_OK;
}
}
@@ -749,7 +736,7 @@ int destroyMessage(Message * m)
return MOD_ERR_PARAMS;
}
if (m->name) {
- free(m->name);
+ delete [] m->name;
}
m->func = NULL;
m->next = NULL;
@@ -766,7 +753,7 @@ int Module::AddCallback(const char *name, time_t when,
{
ModuleCallBack *newcb, *tmp, *prev;
int i;
- newcb = (ModuleCallBack *)malloc(sizeof(ModuleCallBack));
+ newcb = new ModuleCallBack;
if (!newcb)
return MOD_ERR_MEMORY;
@@ -778,7 +765,7 @@ int Module::AddCallback(const char *name, time_t when,
newcb->owner_name = sstrdup(this->name.c_str());
newcb->func = func;
newcb->argc = argc;
- newcb->argv = (char **)malloc(sizeof(char *) * argc);
+ newcb->argv = new char *[argc];
for (i = 0; i < argc; i++) {
newcb->argv[i] = sstrdup(argv[i]);
}
@@ -823,16 +810,17 @@ void moduleCallBackDeleteEntry(ModuleCallBack * prev)
prev->next = tmp->next;
}
if (tmp->name)
- free(tmp->name);
+ delete [] tmp->name;
if (tmp->owner_name)
- free(tmp->owner_name);
+ delete [] tmp->owner_name;
tmp->func = NULL;
for (i = 0; i < tmp->argc; i++) {
- free(tmp->argv[i]);
+ delete [] tmp->argv[i];
}
+ delete [] tmp->argv;
tmp->argc = 0;
tmp->next = NULL;
- free(tmp);
+ delete tmp;
}
/**
@@ -1270,7 +1258,7 @@ void moduleNoticeLang(char *source, User * u, int number, ...)
strscpy(outbuf, t, sizeof(outbuf));
notice_user(source, u, "%s", outbuf);
}
- free(buf);
+ delete [] buf;
} else {
alog("%s: INVALID language string call, language: [%d], String [%d]", mod_current_module->name.c_str(), lang, number);
}
@@ -1321,7 +1309,7 @@ void moduleDeleteLanguage(int langNumber)
mod_current_module = findModule(mod_current_module_name);
}
for (idx = 0; idx > mod_current_module->lang[langNumber].argc; idx++) {
- free(mod_current_module->lang[langNumber].argv[idx]);
+ delete [] mod_current_module->lang[langNumber].argv[idx];
}
mod_current_module->lang[langNumber].argc = 0;
}
diff --git a/src/modules/bs_fantasy_unban.c b/src/modules/bs_fantasy_unban.c
index 88920176a..f28e66233 100644
--- a/src/modules/bs_fantasy_unban.c
+++ b/src/modules/bs_fantasy_unban.c
@@ -6,8 +6,8 @@
* Please read COPYING and README for further details.
*
* Based on the original code of Epona by Lara.
- * Based on the original code of Services by Andy Church.
- *
+ * Based on the original code of Services by Andy Church.
+ *
* $Id$
*
*/
@@ -62,7 +62,7 @@ int do_fantasy(int argc, char **argv)
common_unban(ci, target);
/* free target if needed (#852) */
- Anope_Free(target);
+ if (target) delete [] target;
}
return MOD_CONT;
diff --git a/src/modules/cs_appendtopic.c b/src/modules/cs_appendtopic.c
index 0e4ba12f8..01b7dc544 100644
--- a/src/modules/cs_appendtopic.c
+++ b/src/modules/cs_appendtopic.c
@@ -191,7 +191,7 @@ int my_cs_appendtopic(User * u)
if (ci->last_topic) {
snprintf(topic, sizeof(topic), "%s %s", ci->last_topic,
newtopic);
- free(ci->last_topic);
+ delete [] ci->last_topic;
} else {
strscpy(topic, newtopic, sizeof(topic));
}
@@ -201,7 +201,7 @@ int my_cs_appendtopic(User * u)
ci->last_topic_time = time(NULL);
if (c->topic)
- free(c->topic);
+ delete [] c->topic;
c->topic = *topic ? sstrdup(topic) : NULL;
strscpy(c->topic_setter, u->nick, NICKMAX);
if (ircd->topictsbackward)
@@ -225,6 +225,8 @@ int my_cs_appendtopic(User * u)
}
}
}
+ if (newtopic) delete [] newtopic;
+ if (chan) delete [] chan;
return MOD_CONT;
}
diff --git a/src/modules/cs_enforce.c b/src/modules/cs_enforce.c
index 7d66bcb1a..9b36e966e 100644
--- a/src/modules/cs_enforce.c
+++ b/src/modules/cs_enforce.c
@@ -440,8 +440,8 @@ int my_cs_enforce(User * u)
}
}
- if(chan) free(chan);
- if(what) free(what);
+ if(chan) delete [] chan;
+ if(what) delete [] what;
return MOD_CONT;
}
diff --git a/src/modules/cs_tban.c b/src/modules/cs_tban.c
index 871b610ff..d402b952e 100644
--- a/src/modules/cs_tban.c
+++ b/src/modules/cs_tban.c
@@ -175,11 +175,11 @@ int do_tban(User * u)
myFullHelpSyntax(u);
}
if (time)
- free(time);
+ delete [] time;
if (nick)
- free(nick);
+ delete [] nick;
if (chan)
- free(chan);
+ delete [] chan;
return MOD_CONT;
}
diff --git a/src/modules/hs_request.c b/src/modules/hs_request.c
index 5eb7cc7f3..0c6e8966b 100644
--- a/src/modules/hs_request.c
+++ b/src/modules/hs_request.c
@@ -393,7 +393,7 @@ class HSRequest : public Module
while (hs_request_head)
hs_request_head = deleteHostCore(hs_request_head, NULL);
- free(HSRequestDBName);
+ delete [] HSRequestDBName;
}
};
@@ -416,7 +416,7 @@ int hs_do_request(User * u)
if (!nick || !rawhostmask) {
if (rawhostmask)
- free(rawhostmask);
+ delete [] rawhostmask;
moduleNoticeLang(s_HostServ, u, LNG_REQUEST_SYNTAX);
return MOD_CONT;
}
@@ -426,28 +426,28 @@ int hs_do_request(User * u)
rawhostmask = myStrGetTokenRemainder(rawhostmask, '@', 1); /* get the remaining string */
if (!rawhostmask) {
moduleNoticeLang(s_HostServ, u, LNG_REQUEST_SYNTAX);
- free(vIdent);
+ delete [] vIdent;
return MOD_CONT;
}
if (strlen(vIdent) > USERMAX - 1) {
notice_lang(s_HostServ, u, HOST_SET_IDENTTOOLONG, USERMAX);
- free(vIdent);
- free(rawhostmask);
+ delete [] vIdent;
+ delete [] rawhostmask;
return MOD_CONT;
} else {
for (s = vIdent; *s; s++) {
if (!my_isvalidchar(*s)) {
notice_lang(s_HostServ, u, HOST_SET_IDENT_ERROR);
- free(vIdent);
- free(rawhostmask);
+ delete [] vIdent;
+ delete [] rawhostmask;
return MOD_CONT;
}
}
}
if (!ircd->vident) {
notice_lang(s_HostServ, u, HOST_NO_VIDENT);
- free(vIdent);
- free(rawhostmask);
+ delete [] vIdent;
+ delete [] rawhostmask;
return MOD_CONT;
}
}
@@ -456,16 +456,16 @@ int hs_do_request(User * u)
} else {
notice_lang(s_HostServ, u, HOST_SET_TOOLONG, HOSTMAX);
if (vIdent)
- free(vIdent);
- free(rawhostmask);
+ delete [] vIdent;
+ delete [] rawhostmask;
return MOD_CONT;
}
if (!isValidHost(hostmask, 3)) {
notice_lang(s_HostServ, u, HOST_SET_ERROR);
if (vIdent)
- free(vIdent);
- free(rawhostmask);
+ delete [] vIdent;
+ delete [] rawhostmask;
return MOD_CONT;
}
@@ -478,8 +478,8 @@ int hs_do_request(User * u)
MSSendDelay);
u->lastmemosend = now;
if (vIdent)
- free(vIdent);
- free(rawhostmask);
+ delete [] vIdent;
+ delete [] rawhostmask;
return MOD_CONT;
}
}
@@ -493,8 +493,8 @@ int hs_do_request(User * u)
}
if (vIdent)
- free(vIdent);
- free(rawhostmask);
+ delete [] vIdent;
+ delete [] rawhostmask;
return MOD_CONT;
}
@@ -540,7 +540,7 @@ void my_memo_lang(User * u, char *name, int z, int number, ...)
va_end(va);
memo_send(u, name, buffer, z);
}
- free(buf);
+ delete [] buf;
} else {
alog("%s: INVALID language string call, language: [%d], String [%d]", mod_current_module->name.c_str(), lang, number);
}
@@ -605,7 +605,7 @@ int hs_do_reject(User * u)
if (!nick) {
moduleNoticeLang(s_HostServ, u, LNG_REJECT_SYNTAX);
if (reason)
- free(reason);
+ delete [] reason;
return MOD_CONT;
}
@@ -632,9 +632,9 @@ int hs_do_reject(User * u)
moduleNoticeLang(s_HostServ, u, LNG_NO_REQUEST, nick);
}
- free(nick);
+ delete [] nick;
if (reason)
- free(reason);
+ delete [] reason;
return MOD_CONT;
}
@@ -680,7 +680,7 @@ int hs_do_activate(User * u)
moduleNoticeLang(s_HostServ, u, LNG_ACTIVATE_SYNTAX);
}
- free(nick);
+ delete [] nick;
return MOD_CONT;
}
@@ -861,7 +861,7 @@ void hsreq_load_db(void)
tmp = myStrGetToken(buf, ':', 3);
if (tmp) {
tmp_time = strtol(tmp, (char **) NULL, 16);
- free(tmp);
+ delete [] tmp;
} else {
tmp_time = 0;
}
@@ -871,17 +871,17 @@ void hsreq_load_db(void)
continue;
}
if (stricmp(vident, "(null)") == 0) {
- free(vident);
+ delete [] vident;
vident = NULL;
}
my_add_host_request(nick, vident, vhost, creator, tmp_time);
- free(nick);
- free(vhost);
- free(creator);
+ delete [] nick;
+ delete [] vhost;
+ delete [] creator;
if (vident)
- free(vident);
+ delete [] vident;
}
- free(buf);
+ delete [] buf;
}
fclose(fp);
@@ -952,7 +952,7 @@ void my_load_config(void)
std::string tmp = config.ReadValue("hs_request", "database", HSREQ_DEFAULT_DBNAME, 0);
if (HSRequestDBName)
- free(HSRequestDBName);
+ delete [] HSRequestDBName;
HSRequestDBName = sstrdup(tmp.c_str());
if (debug)
diff --git a/src/modules/ns_maxemail.c b/src/modules/ns_maxemail.c
index 29773dfe5..54a1494fa 100644
--- a/src/modules/ns_maxemail.c
+++ b/src/modules/ns_maxemail.c
@@ -154,7 +154,7 @@ int my_ns_register(User * u)
return MOD_CONT;
ret = check_email_limit_reached(email, u);
- free(email);
+ delete [] email;
return ret;
}
@@ -173,17 +173,17 @@ int my_ns_set(User * u)
return MOD_CONT;
if (stricmp(set, "email") != 0) {
- free(set);
+ delete [] set;
return MOD_CONT;
}
- free(set);
+ delete [] set;
email = myStrGetToken(cur_buffer, ' ', 1);
if (!email)
return MOD_CONT;
ret = check_email_limit_reached(email, u);
- free(email);
+ delete [] email;
return ret;
}
diff --git a/src/modules/ns_noop_convert.c b/src/modules/ns_noop_convert.c
index bc9a59d02..58513ef44 100644
--- a/src/modules/ns_noop_convert.c
+++ b/src/modules/ns_noop_convert.c
@@ -82,7 +82,7 @@ class NSNOOPConvert : public Module
~NSNOOPConvert()
{
if (NSAutoOPDBName)
- free(NSAutoOPDBName);
+ delete [] NSAutoOPDBName;
}
};
@@ -117,7 +117,7 @@ int mLoadData(void)
if ((na = findnick(name))) {
na->nc->flags |= NI_AUTOOP;
}
- free(name);
+ delete [] name;
}
}
}
@@ -136,7 +136,7 @@ int mLoadConfig(int argc, char **argv)
std::string tmp = config.ReadValue("ns_noop_convert", "database", DEFAULT_DB_NAME, 0);
if (NSAutoOPDBName)
- free(NSAutoOPDBName);
+ delete [] NSAutoOPDBName;
NSAutoOPDBName = sstrdup(tmp.c_str());
diff --git a/src/modules/os_ignore_db.c b/src/modules/os_ignore_db.c
index 2984b3b20..55387fac3 100644
--- a/src/modules/os_ignore_db.c
+++ b/src/modules/os_ignore_db.c
@@ -111,7 +111,7 @@ class OSIgnoreDB : public Module
save_ignore_db();
if (IgnoreDB)
- free(IgnoreDB);
+ delete [] IgnoreDB;
}
};
@@ -125,7 +125,7 @@ void load_config(void) {
std::string tmp = config.ReadValue("os_ignore", "database", DefIgnoreDB, 0);
if (IgnoreDB)
- free(IgnoreDB);
+ delete [] IgnoreDB;
IgnoreDB = sstrdup(tmp.c_str());
if (debug)
@@ -174,7 +174,7 @@ int backup_ignoredb(int argc, char **argv) {
**************************************************************************/
void load_ignore_db(void) {
- DBFile *dbptr = (DBFile *)scalloc(1, sizeof(DBFile));
+ DBFile *dbptr = new DBFile;
char *key, *value, *mask = NULL;
int retval = 0;
time_t expiry_time;
@@ -188,7 +188,7 @@ void load_ignore_db(void) {
/* Open the db, fill the rest of dbptr and allocate memory for key and value */
if (new_open_db_read(dbptr, &key, &value)) {
- free(dbptr);
+ delete dbptr;
return; /* Bang, an error occurred */
}
@@ -198,12 +198,12 @@ void load_ignore_db(void) {
if (retval == DB_READ_ERROR) {
new_close_db(dbptr->fptr, &key, &value);
- free(dbptr);
+ delete dbptr;
return;
} else if (retval == DB_EOF_ERROR) {
new_close_db(dbptr->fptr, &key, &value);
- free(dbptr);
+ delete dbptr;
return;
} else if (retval == DB_READ_BLOCKEND) { /* DB_READ_BLOCKEND */
/* Check if we have everything to add the ignore..
@@ -216,7 +216,7 @@ void load_ignore_db(void) {
if (!ign) {
/* Create a fresh entry.. */
- ign = (IgnoreData *)scalloc(sizeof(*ign), 1);
+ ign = new IgnoreData;
ign->mask = (char *)sstrdup(mask);
ign->time = expiry_time;
ign->prev = NULL;
@@ -236,7 +236,7 @@ void load_ignore_db(void) {
}
}
- if (mask) free(mask);
+ if (mask) delete [] mask;
mask = NULL;
expiry_time = time(NULL);
} else { /* DB_READ_SUCCESS */
@@ -246,7 +246,7 @@ void load_ignore_db(void) {
/* mask */
if (!stricmp(key, "m")) {
if (mask)
- free(mask);
+ delete [] mask;
mask = sstrdup(value);
/* expiry time */
@@ -263,12 +263,12 @@ void load_ignore_db(void) {
} /* else */
} /* while */
- free(dbptr);
+ delete dbptr;
}
void save_ignore_db(void) {
- DBFile *dbptr = (DBFile *)scalloc(1, sizeof(DBFile));
+ DBFile *dbptr = new DBFile;
time_t now;
IgnoreData *ign, *next;
@@ -280,7 +280,7 @@ void save_ignore_db(void) {
if (new_open_db_write(dbptr)) {
rename(dbptr->temp_name, IgnoreDB);
- free(dbptr);
+ delete dbptr;
return; /* Bang, an error occurred */
}
@@ -303,8 +303,8 @@ void save_ignore_db(void) {
ignore = ign->next;
if (ign->next)
ign->next->prev = ign->prev;
- free(ign->mask);
- free(ign);
+ delete [] ign->mask;
+ delete ign;
ign = NULL;
} else {
new_write_db_entry("m", dbptr, "%s", ign->mask);
@@ -316,7 +316,7 @@ void save_ignore_db(void) {
if (dbptr) {
new_close_db(dbptr->fptr, NULL, NULL); /* close file */
remove(dbptr->temp_name); /* saved successfully, no need to keep the old one */
- free(dbptr); /* free the db struct */
+ delete dbptr; /* free the db struct */
}
}
@@ -329,17 +329,17 @@ void save_ignore_db(void) {
int new_open_db_read(DBFile *dbptr, char **key, char **value) {
- *key = (char *)malloc(MAXKEYLEN);
- *value = (char *)malloc(MAXVALLEN);
+ *key = new char [MAXKEYLEN];
+ *value = new char [MAXVALLEN];
if (!(dbptr->fptr = fopen(dbptr->filename, "rb"))) {
if (debug) {
alog("debug: Can't read %s database %s : errno(%d)", dbptr->service,
dbptr->filename, errno);
}
- free(*key);
+ delete [] *key;
*key = NULL;
- free(*value);
+ delete [] *value;
*value = NULL;
return DB_READ_ERROR;
}
@@ -350,9 +350,9 @@ int new_open_db_read(DBFile *dbptr, char **key, char **value) {
if (debug) {
alog("debug: Error reading version number on %s", dbptr->filename);
}
- free(*key);
+ delete [] *key;
*key = NULL;
- free(*value);
+ delete [] *value;
*value = NULL;
return DB_READ_ERROR;
} else if (feof(dbptr->fptr)) {
@@ -360,18 +360,18 @@ int new_open_db_read(DBFile *dbptr, char **key, char **value) {
alog("debug: Error reading version number on %s: End of file detected",
dbptr->filename);
}
- free(*key);
+ delete [] *key;
*key = NULL;
- free(*value);
+ delete [] *value;
*value = NULL;
return DB_EOF_ERROR;
} else if (dbptr->db_version < 1) {
if (debug) {
alog("debug: Invalid version number (%d) on %s", dbptr->db_version, dbptr->filename);
}
- free(*key);
+ delete [] *key;
*key = NULL;
- free(*value);
+ delete [] *value;
*value = NULL;
return DB_VERSION_ERROR;
}
@@ -402,11 +402,11 @@ int new_open_db_write(DBFile *dbptr) {
void new_close_db(FILE *fptr, char **key, char **value) {
if (key && *key) {
- free(*key);
+ delete [] *key;
*key = NULL;
}
if (value && *value) {
- free(*value);
+ delete [] *value;
*value = NULL;
}
@@ -487,7 +487,7 @@ int new_write_db_entry(const char *key, DBFile *dbptr, const char *fmt, ...) {
}
remove(dbptr->filename);
rename(dbptr->temp_name, dbptr->filename);
- free(dbptr);
+ delete dbptr;
dbptr = NULL;
return DB_WRITE_ERROR;
}
diff --git a/src/modules/os_info.c b/src/modules/os_info.c
index 731573f37..dbf72731c 100644
--- a/src/modules/os_info.c
+++ b/src/modules/os_info.c
@@ -332,17 +332,17 @@ class OSInfo : public Module
char *c;
if (nc->GetExt("os_modinfo", c));
{
- free(c);
+ delete [] c;
nc->Shrink("os_modinfo");
}
}
}
av[0] = sstrdup(EVENT_START);
mSaveData(1, av);
- free(av[0]);
+ delete [] av[0];
if (OSInfoDBName)
- free(OSInfoDBName);
+ delete [] OSInfoDBName;
}
};
@@ -382,14 +382,14 @@ int myAddNickInfo(User * u)
/* ok we've found the user */
if ((na = findnick(nick))) {
/* Add the module data to the user */
- na->nc->Extend("os_info", strdup(info));
+ na->nc->Extend("os_info", sstrdup(info));
moduleNoticeLang(s_NickServ, u, OINFO_ADD_SUCCESS, nick);
/* NickCore not found! */
} else {
notice_lang(s_NickServ, u, NICK_X_NOT_REGISTERED,
nick);
}
- free(info);
+ delete [] info;
}
} else if (strcasecmp(cmd, "DEL") == 0) {
/* ok we've found the user */
@@ -398,7 +398,7 @@ int myAddNickInfo(User * u)
char *c;
if (na->nc->GetExt("os_info", c))
{
- free(c);
+ delete [] c;
na->nc->Shrink("os_info");
}
@@ -412,12 +412,12 @@ int myAddNickInfo(User * u)
} else {
moduleNoticeLang(s_NickServ, u, OINFO_SYNTAX);
}
- free(cmd);
- free(nick);
+ delete [] cmd;
+ delete [] nick;
/* Syntax error */
} else if (cmd) {
moduleNoticeLang(s_NickServ, u, OINFO_SYNTAX);
- free(cmd);
+ delete [] cmd;
/* Syntax error */
} else {
moduleNoticeLang(s_NickServ, u, OINFO_SYNTAX);
@@ -455,14 +455,14 @@ int myAddChanInfo(User * u)
if (info) {
if ((ci = cs_findchan(chan))) {
/* Add the module data to the channel */
- ci->Extend("os_info", strdup(info));
+ ci->Extend("os_info", sstrdup(info));
moduleNoticeLang(s_ChanServ, u, OCINFO_ADD_SUCCESS, chan);
/* ChanInfo */
} else {
notice_lang(s_ChanServ, u, CHAN_X_NOT_REGISTERED,
chan);
}
- free(info);
+ delete [] info;
}
} else if (strcasecmp(cmd, "DEL") == 0) {
if ((ci = cs_findchan(chan))) {
@@ -470,7 +470,7 @@ int myAddChanInfo(User * u)
char *c;
if (ci->GetExt("os_info", c))
{
- free(c);
+ delete [] c;
ci->Shrink("os_info");
}
moduleNoticeLang(s_ChanServ, u, OCINFO_DEL_SUCCESS, chan);
@@ -483,12 +483,12 @@ int myAddChanInfo(User * u)
} else {
moduleNoticeLang(s_ChanServ, u, OCINFO_SYNTAX);
}
- free(cmd);
- free(chan);
+ delete [] cmd;
+ delete [] chan;
/* Syntax error */
} else if (cmd) {
moduleNoticeLang(s_ChanServ, u, OCINFO_SYNTAX);
- free(cmd);
+ delete [] cmd;
/* Syntax error */
} else {
moduleNoticeLang(s_ChanServ, u, OCINFO_SYNTAX);
@@ -525,11 +525,8 @@ int myNickInfo(User * u)
{
notice_user(s_NickServ, u, " OperInfo: %s", c);
}
- /* NickCore not found! */
- } else {
- /* we dont care! */
}
- free(nick);
+ delete [] nick;
}
}
}
@@ -562,7 +559,7 @@ int myChanInfo(User * u)
notice_user(s_ChanServ, u, " OperInfo: %s", c);
}
}
- free(chan);
+ delete [] chan;
}
}
}
@@ -615,11 +612,11 @@ int mLoadData(void)
na->nc->Extend("os_info", strdup(info));
}
}
- free(info);
+ delete [] info;
}
- free(name);
+ delete [] name;
}
- free(type);
+ delete [] type;
}
}
}
@@ -702,7 +699,7 @@ int mLoadConfig(void)
std::string tmp = config.ReadValue("os_info", "database", DEFAULT_DB_NAME, 0);
if (OSInfoDBName)
- free(OSInfoDBName);
+ delete [] OSInfoDBName;
OSInfoDBName = sstrdup(tmp.c_str());
diff --git a/src/news.c b/src/news.c
index 9b5ff3db6..d113fc317 100644
--- a/src/news.c
+++ b/src/news.c
@@ -509,7 +509,7 @@ static int del_newsitem(int num, short type)
for (i = 0; i < nnews; i++) {
if (news[i].type == type && (num == 0 || news[i].num == num)) {
- free(news[i].text);
+ delete [] news[i].text;
count++;
nnews--;
if (i < nnews)
diff --git a/src/nickserv.c b/src/nickserv.c
index deab9545b..ed69455b2 100644
--- a/src/nickserv.c
+++ b/src/nickserv.c
@@ -181,7 +181,7 @@ void load_ns_req_db(void)
while ((c = getc_db(f)) == 1) {
if (c != 1)
fatal("Invalid format in %s", PreNickDBName);
- nr = (NickRequest *)scalloc(1, sizeof(NickRequest));
+ nr = new NickRequest;
SAFE(read_string(&nr->nick, f));
SAFE(read_string(&nr->passcode, f));
if (ver < 2) {
@@ -189,7 +189,7 @@ void load_ns_req_db(void)
len = strlen(pass);
enc_encrypt(pass, len, nr->password, PASSMAX);
memset(pass, 0, len);
- free(pass);
+ delete [] pass;
} else
SAFE(read_buffer(nr->password, f));
SAFE(read_string(&nr->email, f));
@@ -317,7 +317,7 @@ void load_ns_dbase(void)
SAFE(read_string(&s, f));
na->nc = findcore(s);
- free(s);
+ delete [] s;
slist_add(&na->nc->aliases, na);
@@ -530,14 +530,12 @@ int validate_user(User * u)
na->status |= NS_RECOGNIZED;
na->last_seen = time(NULL);
if (na->last_usermask)
- free(na->last_usermask);
- na->last_usermask =
- (char *)scalloc(strlen(common_get_vident(u)) +
- strlen(common_get_vhost(u)) + 2, 1);
+ delete [] na->last_usermask;
+ na->last_usermask = new char[strlen(common_get_vident(u)) + strlen(common_get_vhost(u)) + 2];
sprintf(na->last_usermask, "%s@%s", common_get_vident(u),
common_get_vhost(u));
if (na->last_realname)
- free(na->last_realname);
+ delete [] na->last_realname;
na->last_realname = sstrdup(u->realname);
return 1;
}
@@ -688,7 +686,7 @@ void expire_nicks()
tmpnick = sstrdup(na->nick);
delnick(na);
send_event(EVENT_NICK_EXPIRE, 1, tmpnick);
- free(tmpnick);
+ delete [] tmpnick;
}
}
}
@@ -799,11 +797,11 @@ int is_on_access(User * u, NickCore * nc)
if (nc->accesscount == 0)
return 0;
- buf = (char *)scalloc(strlen(u->username) + strlen(u->host) + 2, 1);
+ buf = new char[strlen(u->username) + strlen(u->host) + 2];
sprintf(buf, "%s@%s", u->username, u->host);
if (ircd->vhost) {
if (u->vhost) {
- buf2 = (char *)scalloc(strlen(u->username) + strlen(u->vhost) + 2, 1);
+ buf2 = new char[strlen(u->username) + strlen(u->vhost) + 2];
sprintf(buf2, "%s@%s", u->username, u->vhost);
}
}
@@ -811,18 +809,18 @@ int is_on_access(User * u, NickCore * nc)
for (i = 0; i < nc->accesscount; i++) {
if (match_wild_nocase(nc->access[i], buf)
|| (ircd->vhost ? match_wild_nocase(nc->access[i], buf2) : 0)) {
- free(buf);
+ delete [] buf;
if (ircd->vhost) {
if (u->vhost) {
- free(buf2);
+ delete [] buf2;
}
}
return 1;
}
}
- free(buf);
+ delete [] buf;
if (ircd->vhost) {
- free(buf2);
+ delete [] buf2;
}
return 0;
}
@@ -932,7 +930,7 @@ void change_core_display(NickCore * nc, char *newdisplay)
else
nclists[HASH(nc->display)] = nc->next;
- free(nc->display);
+ delete [] nc->display;
nc->display = sstrdup(newdisplay);
insert_core(nc);
@@ -964,19 +962,19 @@ static int delcore(NickCore * nc)
alog("%s: deleting nickname group %s", s_NickServ, nc->display);
/* Now we can safely free it. */
- free(nc->display);
+ delete [] nc->display;
if (nc->email)
- free(nc->email);
+ delete [] nc->email;
if (nc->greet)
- free(nc->greet);
+ delete [] nc->greet;
if (nc->url)
- free(nc->url);
+ delete [] nc->url;
if (nc->access) {
for (i = 0; i < nc->accesscount; i++) {
if (nc->access[i])
- free(nc->access[i]);
+ delete [] nc->access[i];
}
free(nc->access);
}
@@ -984,7 +982,7 @@ static int delcore(NickCore * nc)
if (nc->memos.memos) {
for (i = 0; i < nc->memos.memocount; i++) {
if (nc->memos.memos[i].text)
- free(nc->memos.memos[i].text);
+ delete [] nc->memos.memos[i].text;
}
free(nc->memos.memos);
}
@@ -1000,12 +998,12 @@ int delnickrequest(NickRequest * nr)
if (nr) {
nrlists[HASH(nr->nick)] = nr->next;
if (nr->nick)
- free(nr->nick);
+ delete [] nr->nick;
if (nr->passcode)
- free(nr->passcode);
+ delete [] nr->passcode;
if (nr->email)
- free(nr->email);
- free(nr);
+ delete [] nr->email;
+ delete nr;
}
return 0;
@@ -1062,13 +1060,13 @@ int delnick(NickAlias * na)
else
nalists[HASH(na->nick)] = na->next;
- free(na->nick);
+ delete [] na->nick;
if (na->last_usermask)
- free(na->last_usermask);
+ delete [] na->last_usermask;
if (na->last_realname)
- free(na->last_realname);
+ delete [] na->last_realname;
if (na->last_quit)
- free(na->last_quit);
+ delete [] na->last_quit;
delete na;
return 1;
@@ -1160,7 +1158,7 @@ static void rem_ns_timeout(NickAlias * na, int type)
t->prev->next = t->next;
else
my_timeouts = t->next;
- free(t);
+ delete t;
t = t2;
} else {
t = t->next;
@@ -1222,7 +1220,7 @@ static void add_ns_timeout(NickAlias * na, int type, time_t delay)
to = add_timeout(delay, timeout_routine, 0);
to->data = na;
- t = (struct my_timeout *)scalloc(sizeof(struct my_timeout), 1);
+ t = new my_timeout;
t->na = na;
t->to = to;
t->type = type;
@@ -1257,7 +1255,7 @@ void del_ns_timeout(NickAlias * na, int type)
else
my_timeouts = t->next;
del_timeout(t->to);
- free(t);
+ delete t;
t = t2;
} else {
t = t->next;
@@ -1291,7 +1289,7 @@ void clean_ns_timeouts(NickAlias * na)
else
my_timeouts = t->next;
del_timeout(t->to);
- free(t);
+ delete t;
}
}
}
@@ -1383,7 +1381,7 @@ void nsStartNickTracking(User * u)
/* Release memory if needed */
if (u->nickTrack)
- free(u->nickTrack);
+ delete [] u->nickTrack;
/* Copy the nick core displayed nick to
the user structure for further checks */
@@ -1399,7 +1397,7 @@ void nsStopNickTracking(User * u)
{
/* Simple enough. If its there, release it */
if (u->nickTrack) {
- free(u->nickTrack);
+ delete [] u->nickTrack;
u->nickTrack = NULL;
}
}
diff --git a/src/operserv.c b/src/operserv.c
index 938fdc3a7..fe270fd38 100644
--- a/src/operserv.c
+++ b/src/operserv.c
@@ -179,7 +179,7 @@ void load_os_dbase(void)
slist_setcapacity(&akills, tmp16);
for (i = 0; i < akills.capacity; i++) {
- ak = (Akill *)scalloc(sizeof(Akill), 1);
+ ak = new Akill;
SAFE(read_string(&ak->user, f));
SAFE(read_string(&ak->host, f));
@@ -199,7 +199,7 @@ void load_os_dbase(void)
slist_setcapacity(&sglines, tmp16);
for (i = 0; i < sglines.capacity; i++) {
- sx = (SXLine *)scalloc(sizeof(SXLine), 1);
+ sx = new SXLine;
SAFE(read_string(&sx->mask, f));
SAFE(read_string(&sx->by, f));
@@ -216,7 +216,7 @@ void load_os_dbase(void)
slist_setcapacity(&sqlines, tmp16);
for (i = 0; i < sqlines.capacity; i++) {
- sx = (SXLine *)scalloc(sizeof(SXLine), 1);
+ sx = new SXLine;
SAFE(read_string(&sx->mask, f));
SAFE(read_string(&sx->by, f));
@@ -233,7 +233,7 @@ void load_os_dbase(void)
slist_setcapacity(&szlines, tmp16);
for (i = 0; i < szlines.capacity; i++) {
- sx = (SXLine *)scalloc(sizeof(SXLine), 1);
+ sx = new SXLine;
SAFE(read_string(&sx->mask, f));
SAFE(read_string(&sx->by, f));
@@ -573,7 +573,7 @@ int add_akill(User * u, char *mask, const char *by, const time_t expires,
host = strchr(mask2, '@');
if (!host) {
- free(mask2);
+ delete [] mask2;
return -1;
}
@@ -581,10 +581,10 @@ int add_akill(User * u, char *mask, const char *by, const time_t expires,
*host = 0;
host++;
- entry = (Akill *)scalloc(sizeof(Akill), 1);
+ entry = new Akill;
if (!entry) {
- free(mask2);
+ delete [] mask2;
return -1;
}
@@ -601,7 +601,7 @@ int add_akill(User * u, char *mask, const char *by, const time_t expires,
ircdproto->SendAkill(entry->user, entry->host, entry->by, entry->seton,
entry->expires, entry->reason);
- free(mask2);
+ delete [] mask2;
return deleted;
}
@@ -690,11 +690,11 @@ static void free_akill_entry(SList * slist, void *item)
ircdproto->SendAkillDel(ak->user, ak->host);
/* Free the structure */
- free(ak->user);
- free(ak->host);
- free(ak->by);
- free(ak->reason);
- free(ak);
+ delete [] ak->user;
+ delete [] ak->host;
+ delete [] ak->by;
+ delete [] ak->reason;
+ delete ak;
}
/* item1 is not an Akill pointer, but a char
@@ -793,7 +793,7 @@ int add_sgline(User * u, char *mask, const char *by, const time_t expires,
}
/* We can now (really) add the SGLINE. */
- entry = (SXLine *)scalloc(sizeof(SXLine), 1);
+ entry = new SXLine;
if (!entry)
return -1;
@@ -878,10 +878,10 @@ static void free_sgline_entry(SList * slist, void *item)
ircdproto->SendSGLineDel(sx->mask);
/* Free the structure */
- free(sx->mask);
- free(sx->by);
- free(sx->reason);
- free(sx);
+ delete [] sx->mask;
+ delete [] sx->by;
+ delete [] sx->reason;
+ delete sx;
}
/* item1 is not an SXLine pointer, but a char */
@@ -980,7 +980,7 @@ int add_sqline(User * u, char *mask, const char *by, const time_t expires,
}
/* We can now (really) add the SQLINE. */
- entry = (SXLine *)scalloc(sizeof(SXLine), 1);
+ entry = new SXLine;
if (!entry)
return -1;
@@ -1099,10 +1099,10 @@ static void free_sqline_entry(SList * slist, void *item)
ircdproto->SendSQLineDel(sx->mask);
/* Free the structure */
- free(sx->mask);
- free(sx->by);
- free(sx->reason);
- free(sx);
+ delete [] sx->mask;
+ delete [] sx->by;
+ delete [] sx->reason;
+ delete sx;
}
/* item1 is not an SXLine pointer, but a char */
@@ -1192,7 +1192,7 @@ int add_szline(User * u, char *mask, const char *by, const time_t expires,
}
/* We can now (really) add the SZLINE. */
- entry = (SXLine *)scalloc(sizeof(SXLine), 1);
+ entry = new SXLine;
if (!entry)
return -1;
@@ -1267,10 +1267,10 @@ static void free_szline_entry(SList * slist, void *item)
ircdproto->SendSZLineDel(sx->mask);
/* Free the structure */
- free(sx->mask);
- free(sx->by);
- free(sx->reason);
- free(sx);
+ delete [] sx->mask;
+ delete [] sx->by;
+ delete [] sx->reason;
+ delete sx;
}
/* item1 is not an SXLine pointer, but a char
@@ -1395,7 +1395,7 @@ void runDefCon(void)
if ((newmodes = defconReverseModes(DefConChanModes))) {
alog("DEFCON: setting %s on all chan's", newmodes);
do_mass_mode(newmodes);
- free(newmodes);
+ delete [] newmodes;
}
}
}
@@ -1412,7 +1412,7 @@ char *defconReverseModes(const char *modes)
if (!modes) {
return NULL;
}
- if (!(newmodes = (char *)malloc(sizeof(char) * strlen(modes) + 1))) {
+ if (!(newmodes = new char[strlen(modes) + 1])) {
return NULL;
}
for (i = 0; i < strlen(modes); i++) {
@@ -1468,7 +1468,7 @@ int defconParseModeString(const char *str)
if ((int) mode < 128 && (cbm = &cbmodes[(int) mode])->flag != 0) {
if (cbm->flags & CBM_NO_MLOCK) {
alog("DefConChanModes mode character '%c' cannot be locked", mode);
- free(str_copy);
+ delete [] str_copy;
return 0;
} else if (add) {
DefConModesOn |= cbm->flag;
@@ -1476,7 +1476,7 @@ int defconParseModeString(const char *str)
if (cbm->cssetvalue) {
if (!(param = strtok(NULL, " "))) {
alog("DefConChanModes mode character '%c' has no parameter while one is expected", mode);
- free(str_copy);
+ delete [] str_copy;
return 0;
}
cbm->cssetvalue(&DefConModesCI, param);
@@ -1492,19 +1492,19 @@ int defconParseModeString(const char *str)
}
} else {
alog("DefConChanModes unknown mode character '%c'", mode);
- free(str_copy);
+ delete [] str_copy;
return 0;
}
} /* while (*param) */
- free(str_copy);
+ delete [] str_copy;
if (ircd->Lmode) {
/* We can't mlock +L if +l is not mlocked as well. */
if ((DefConModesOn & ircd->chan_lmode)
&& !(DefConModesOn & anope_get_limit_mode())) {
DefConModesOn &= ~ircd->chan_lmode;
- free(DefConModesCI.mlock_redirect);
+ delete [] DefConModesCI.mlock_redirect;
DefConModesCI.mlock_redirect = NULL;
alog("DefConChanModes must lock mode +l as well to lock mode +L");
return 0;
diff --git a/src/process.c b/src/process.c
index 253fd31b7..eb2d9bf62 100644
--- a/src/process.c
+++ b/src/process.c
@@ -38,52 +38,45 @@ void add_ignore(const char *nick, time_t delta)
char *mask, *user, *host;
User *u;
time_t now;
-
-if (!nick)
+ if (!nick)
return;
now = time(NULL);
-
-
- /* If it s an existing user, we ignore the hostmask. */
- if ((u = finduser(nick))) {
+ /* If it s an existing user, we ignore the hostmask. */
+ if ((u = finduser(nick))) {
snprintf(tmp, sizeof(tmp), "*!*@%s", u->host);
mask = sstrdup(tmp);
-
- /* Determine whether we get a nick or a mask. */
+ /* Determine whether we get a nick or a mask. */
} else if ((host = strchr(nick, '@'))) {
- /* Check whether we have a nick too.. */
+ /* Check whether we have a nick too.. */
if ((user = strchr(nick, '!'))) {
- /* this should never happen */
- if (user > host)
+ /* this should never happen */
+ if (user > host)
return;
mask = sstrdup(nick);
} else {
- /* We have user@host. Add nick wildcard. */
+ /* We have user@host. Add nick wildcard. */
snprintf(tmp, sizeof(tmp), "*!%s", nick);
mask = sstrdup(tmp);
}
-
- /* We only got a nick.. */
+
+ /* We only got a nick.. */
} else {
-
-snprintf(tmp, sizeof(tmp), "%s!*@*", nick);
+ snprintf(tmp, sizeof(tmp), "%s!*@*", nick);
mask = sstrdup(tmp);
}
-
- /* Check if we already got an identical entry. */
- for (ign = ignore; ign; ign = ign->next)
+ /* Check if we already got an identical entry. */
+ for (ign = ignore; ign; ign = ign->next)
if (stricmp(ign->mask, mask) == 0)
break;
-
/* Found one.. */
- if (ign) {
+ if (ign) {
if (delta == 0)
ign->time = 0;
else if (ign->time < now + delta)
ign->time = now + delta;
- /* Create new entry.. */
+ /* Create new entry.. */
} else {
- ign = (IgnoreData *)scalloc(sizeof(*ign), 1);
+ ign = new IgnoreData;
ign->mask = mask;
ign->time = (delta == 0 ? 0 : now + delta);
ign->prev = NULL;
@@ -100,7 +93,7 @@ snprintf(tmp, sizeof(tmp), "%s!*@*", nick);
/**
* Retrieve an ignorance record for a nick or mask.
- * If the nick isn't being ignored, we return NULL and if necesary
+ * If the nick isn't being ignored, we return NULL and if necesary
* flush the record from the ignore list (i.e. ignore timed out).
* @param nick Nick or (nick!)user@host to look for on the ignorelist.
* @return Pointer to the ignore record, NULL if none was found.
@@ -112,54 +105,42 @@ IgnoreData *get_ignore(const char *nick)
char *user, *host;
time_t now;
User *u;
-
-if (!nick)
+ if (!nick)
return NULL;
-
-
- /* User has disabled the IGNORE system */
- if (!allow_ignore)
+ /* User has disabled the IGNORE system */
+ if (!allow_ignore)
return NULL;
-
-now = time(NULL);
-
-u = finduser(nick);
-
-
- /* If we find a real user, match his mask against the ignorelist. */
- if (u) {
+ now = time(NULL);
+ u = finduser(nick);
+ /* If we find a real user, match his mask against the ignorelist. */
+ if (u) {
/* Opers are not ignored, even if a matching entry may be present. */
- if (is_oper(u))
+ if (is_oper(u))
return NULL;
for (ign = ignore; ign; ign = ign->next)
if (match_usermask(ign->mask, u))
break;
-
-} else {
- /* We didn't get a user.. generate a valid mask. */
+ } else {
+ /* We didn't get a user.. generate a valid mask. */
if ((host = strchr(nick, '@'))) {
- if ((user = strchr(nick, '!'))) {
- /* this should never happen */
- if (user > host)
+ if ((user = strchr(nick, '!'))) {
+ /* this should never happen */
+ if (user > host)
return NULL;
snprintf(tmp, sizeof(tmp), "%s", nick);
} else {
- /* We have user@host. Add nick wildcard. */
- snprintf(tmp, sizeof(tmp), "*!%s", nick);
+ /* We have user@host. Add nick wildcard. */
+ snprintf(tmp, sizeof(tmp), "*!%s", nick);
}
-
- /* We only got a nick.. */
+ /* We only got a nick.. */
} else
-
-snprintf(tmp, sizeof(tmp), "%s!*@*", nick);
-
-for (ign = ignore; ign; ign = ign->next)
+ snprintf(tmp, sizeof(tmp), "%s!*@*", nick);
+ for (ign = ignore; ign; ign = ign->next)
if (match_wild_nocase(ign->mask, tmp))
break;
}
-
- /* Check whether the entry has timed out */
- if (ign && ign->time != 0 && ign->time <= now) {
+ /* Check whether the entry has timed out */
+ if (ign && ign->time != 0 && ign->time <= now) {
if (debug)
alog("debug: Expiring ignore entry %s", ign->mask);
if (ign->prev)
@@ -168,12 +149,11 @@ for (ign = ignore; ign; ign = ign->next)
ignore = ign->next;
if (ign->next)
ign->next->prev = ign->prev;
- free(ign->mask);
- free(ign);
+ delete [] ign->mask;
+ delete ign;
ign = NULL;
}
-
-if (ign && debug)
+ if (ign && debug)
alog("debug: Found ignore entry (%s) for %s", ign->mask, nick);
return ign;
}
@@ -192,88 +172,71 @@ int delete_ignore(const char *nick)
char tmp[BUFSIZE];
char *user, *host;
User *u;
-
-if (!nick)
+ if (!nick)
return 0;
-
- /* If it s an existing user, we ignore the hostmask. */
- if ((u = finduser(nick))) {
+ /* If it s an existing user, we ignore the hostmask. */
+ if ((u = finduser(nick))) {
snprintf(tmp, sizeof(tmp), "*!*@%s", u->host);
-
- /* Determine whether we get a nick or a mask. */
+ /* Determine whether we get a nick or a mask. */
} else if ((host = strchr(nick, '@'))) {
- /* Check whether we have a nick too.. */
- if ((user = strchr(nick, '!'))) {
- /* this should never happen */
- if (user > host)
+ /* Check whether we have a nick too.. */
+ if ((user = strchr(nick, '!'))) {
+ /* this should never happen */
+ if (user > host)
return 0;
snprintf(tmp, sizeof(tmp), "%s", nick);
} else {
- /* We have user@host. Add nick wildcard. */
+ /* We have user@host. Add nick wildcard. */
snprintf(tmp, sizeof(tmp), "*!%s", nick);
}
-
- /* We only got a nick.. */
+ /* We only got a nick.. */
} else
-
-snprintf(tmp, sizeof(tmp), "%s!*@*", nick);
-
+ snprintf(tmp, sizeof(tmp), "%s!*@*", nick);
for (ign = ignore; ign; ign = ign->next)
if (stricmp(ign->mask, tmp) == 0)
break;
-
- /* No matching ignore found. */
- if (!ign)
+ /* No matching ignore found. */
+ if (!ign)
return 0;
-
-if (debug)
+ if (debug)
alog("Deleting ignore entry %s", ign->mask);
-
- /* Delete the entry and all references to it. */
- if (ign->prev)
+ /* Delete the entry and all references to it. */
+ if (ign->prev)
ign->prev->next = ign->next;
else if (ignore == ign)
ignore = ign->next;
if (ign->next)
ign->next->prev = ign->prev;
-
-
-free(ign->mask);
- free(ign);
+ delete [] ign->mask;
+ delete ign;
ign = NULL;
-
-return 1;
-
+ return 1;
}
-/*************************************************************************/
-
+/*************************************************************************/
+
/**
* Clear the ignorelist.
* @return The number of entries deleted.
- */
-int clear_ignores()
+ */
+int clear_ignores()
{
IgnoreData *ign, *next;
int i = 0;
-
-if (!ignore)
+ if (!ignore)
return 0;
-
-for (ign = ignore; ign; ign = next) {
+ for (ign = ignore; ign; ign = next) {
next = ign->next;
if (debug)
alog("Deleting ignore entry %s", ign->mask);
- free(ign->mask);
- free(ign);
+ delete [] ign->mask;
+ delete ign;
i++;
}
-
-ignore = NULL;
+ ignore = NULL;
return i;
-
}
@@ -390,7 +353,7 @@ void process()
}
if (mod_current_buffer) {
- free(mod_current_buffer);
+ delete [] mod_current_buffer;
}
if (ac >= 1) {
diff --git a/src/protocol/inspircd11.c b/src/protocol/inspircd11.c
index 043e169f1..ebc694745 100644
--- a/src/protocol/inspircd11.c
+++ b/src/protocol/inspircd11.c
@@ -824,6 +824,7 @@ int anope_event_fjoin(const char *source, int ac, const char **av)
}
strncat(nicklist, prefixandnick, 513);
strncat(nicklist, " ", 513);
+ delete [] curnick;
curtoken++;
curnick = myStrGetToken(av[2], ' ', curtoken);
nlen = 0;
@@ -884,7 +885,7 @@ int anope_event_topic(const char *source, int ac, const char **av)
return MOD_CONT;
if (c->topic) {
- free(c->topic);
+ delete [] c->topic;
c->topic = NULL;
}
if (ac > 1 && *av[1])
diff --git a/src/protocol/inspircd12.cpp b/src/protocol/inspircd12.cpp
index 44f294439..205e91897 100644
--- a/src/protocol/inspircd12.cpp
+++ b/src/protocol/inspircd12.cpp
@@ -882,6 +882,7 @@ int anope_event_fjoin(const char *source, int ac, const char **av)
endnick:
strncat(nicklist, prefixandnick, 513);
strncat(nicklist, " ", 513);
+ delete [] curnick;
curtoken++;
curnick = myStrGetToken(av[ac - 1], ' ', curtoken);
nlen = 0;
@@ -933,7 +934,7 @@ int anope_event_topic(const char *source, int ac, const char **av)
return MOD_CONT;
if (c->topic) {
- free(c->topic);
+ delete [] c->topic;
c->topic = NULL;
}
if (ac > 1 && *av[1])
@@ -1369,7 +1370,7 @@ class ProtoInspIRCd : public Module
~ProtoInspIRCd()
{
- free(TS6SID);
+ delete [] TS6SID;
}
};
diff --git a/src/protocol/ratbox.c b/src/protocol/ratbox.c
index 245ae5f91..a91d676a6 100644
--- a/src/protocol/ratbox.c
+++ b/src/protocol/ratbox.c
@@ -763,7 +763,7 @@ int anope_event_topic(const char *source, int ac, const char **av)
return MOD_CONT;
if (c->topic) {
- free(c->topic);
+ delete [] c->topic;
c->topic = NULL;
}
if (ac > 1 && *av[1])
@@ -808,18 +808,18 @@ int anope_event_tburst(const char *source, int ac, const char **av)
merge_args(ac - 1, av + 1), av[0]);
}
if (setter)
- free(setter);
+ delete [] setter;
return MOD_CONT;
}
if (check_topiclock(c, topic_time)) {
if (setter)
- free(setter);
+ delete [] setter;
return MOD_CONT;
}
if (c->topic) {
- free(c->topic);
+ delete [] c->topic;
c->topic = NULL;
}
if (ac > 1 && *av[3])
@@ -830,7 +830,7 @@ int anope_event_tburst(const char *source, int ac, const char **av)
record_topic(av[0]);
if (setter)
- free(setter);
+ delete [] setter;
return MOD_CONT;
}
@@ -1044,7 +1044,7 @@ int anope_event_capab(const char *source, int ac, const char **av)
/* Free our built ac/av */
for (argvsize = 0; argvsize < argc; argvsize++) {
- free((char *)argv[argvsize]);
+ delete [] argv[argvsize];
}
free((char **)argv);
@@ -1083,9 +1083,9 @@ int anope_event_bmask(const char *source, int ac, const char **av)
add_invite(c, b);
}
if (b)
- free(b);
+ delete [] b;
}
- free(bans);
+ delete [] bans;
}
return MOD_CONT;
}
@@ -1172,7 +1172,7 @@ class ProtoRatbox : public Module
~ProtoRatbox()
{
- free(TS6SID);
+ delete [] TS6SID;
}
};
diff --git a/src/protocol/unreal32.c b/src/protocol/unreal32.c
index c0ee75c6c..74bafd0f9 100644
--- a/src/protocol/unreal32.c
+++ b/src/protocol/unreal32.c
@@ -1281,9 +1281,9 @@ int anope_event_server(const char *source, int ac, const char **av)
upnumeric = myStrGetToken(vl, '-', 2);
desc = myStrGetTokenRemainder(av[2], ' ', 1);
do_server(source, av[0], av[1], desc, upnumeric);
- Anope_Free(vl);
- Anope_Free(desc);
- Anope_Free(upnumeric);
+ delete [] vl;
+ delete [] desc;
+ delete [] upnumeric;
} else {
do_server(source, av[0], av[1], av[2], NULL);
}
diff --git a/src/servers.c b/src/servers.c
index 0665e6fce..4e57bc430 100644
--- a/src/servers.c
+++ b/src/servers.c
@@ -124,7 +124,7 @@ Server *new_server(Server * server_uplink, const char *name, const char *desc,
if (debug)
alog("Creating %s(%s) uplinked to %s", name, suid, server_uplink ? server_uplink->name : "No uplink");
- serv = (Server *)scalloc(sizeof(Server), 1);
+ serv = new Server;
if (!name)
name = "";
serv->name = sstrdup(name);
@@ -210,7 +210,7 @@ static void delete_server(Server * serv, const char *quitreason)
&& (na->status & (NS_IDENTIFIED | NS_RECOGNIZED))) {
na->last_seen = time(NULL);
if (na->last_quit)
- free(na->last_quit);
+ delete [] na->last_quit;
na->last_quit =
(quitreason ? sstrdup(quitreason) : NULL);
}
@@ -236,8 +236,8 @@ static void delete_server(Server * serv, const char *quitreason)
if (debug)
alog("debug: delete_server() cleared all servers");
- free(serv->name);
- free(serv->desc);
+ delete [] serv->name;
+ delete [] serv->desc;
if (serv->prev)
serv->prev->next = serv->next;
if (serv->next)
@@ -313,7 +313,7 @@ Server *findserver_uid(Server * s, const char *name)
if (debug)
alog("debug: findserver_uid(%s)", name);
-
+
while (s && s->suid && (stricmp(s->suid, name) != 0))
{
if (debug >= 3)
@@ -392,10 +392,10 @@ void do_server(const char *source, const char *servername, const char *hops,
s = me_server;
else
s = findserver(servlist, source);
-
+
if (s == NULL)
s = findserver_uid(servlist, source);
-
+
if (s == NULL)
throw CoreException("Recieved a server from a nonexistant uplink?");
@@ -494,10 +494,9 @@ void capab_parse(int ac, const char **av)
ircd->nickchars = sstrdup(tmp);
}
- if (s)
- free(s);
+ delete [] s;
if (tmp)
- free(tmp);
+ delete [] tmp;
}
}
diff --git a/src/sessions.c b/src/sessions.c
index ede7dfbc9..2a3344096 100644
--- a/src/sessions.c
+++ b/src/sessions.c
@@ -251,7 +251,7 @@ int add_session(const char *nick, const char *host, char *hostip)
}
nsessions++;
- session = (Session *)scalloc(sizeof(Session), 1);
+ session = new Session;
session->host = sstrdup(host);
list = &sessionlist[HASH(session->host)];
session->next = *list;
@@ -312,8 +312,8 @@ void del_session(const char *host)
if (debug >= 2)
alog("debug: del_session(): free session structure");
- free(session->host);
- free(session);
+ delete [] session->host;
+ delete session;
nsessions--;
@@ -338,8 +338,8 @@ void expire_exceptions(void)
ircdproto->SendGlobops(s_OperServ,
"Session limit exception for %s has expired.",
exceptions[i].mask);
- free(exceptions[i].mask);
- free(exceptions[i].reason);
+ delete [] exceptions[i].mask;
+ delete [] exceptions[i].reason;
nexceptions--;
memmove(exceptions + i, exceptions + i + 1,
sizeof(Exception) * (nexceptions - i));
@@ -523,8 +523,8 @@ static int exception_del(const int index)
if (index < 0 || index >= nexceptions)
return 0;
- free(exceptions[index].mask);
- free(exceptions[index].reason);
+ delete [] exceptions[index].mask;
+ delete [] exceptions[index].reason;
nexceptions--;
memmove(exceptions + index, exceptions + index + 1,
sizeof(Exception) * (nexceptions - index));
@@ -773,7 +773,7 @@ int do_exception(User * u)
if ((n1 >= 0 && n1 < nexceptions) && (n2 >= 0 && n2 < nexceptions)
&& (n1 != n2)) {
- exception = (Exception *)scalloc(sizeof(Exception), 1);
+ exception = new Exception;
memcpy(exception, &exceptions[n1], sizeof(Exception));
if (n1 < n2) {
@@ -788,7 +788,7 @@ int do_exception(User * u)
memmove(&exceptions[n2], exception, sizeof(Exception));
}
- free(exception);
+ delete exception;
notice_lang(s_OperServ, u, OPER_EXCEPTION_MOVED,
exceptions[n1].mask, n1 + 1, n2 + 1);
diff --git a/src/timeout.c b/src/timeout.c
index 99e47164d..d3a69bf6d 100644
--- a/src/timeout.c
+++ b/src/timeout.c
@@ -51,7 +51,7 @@ void check_timeouts(void)
to->prev->next = to->next;
else
timeouts = to->next;
- free(to);
+ delete to;
to = to2;
}
if (debug >= 2)
@@ -68,7 +68,7 @@ void check_timeouts(void)
Timeout *add_timeout(int delay, void (*code) (Timeout *), int repeat)
{
- Timeout *t = (Timeout *)scalloc(sizeof(Timeout), 1);
+ Timeout *t = new Timeout;
t->settime = time(NULL);
t->timeout = t->settime + delay;
t->code = code;
@@ -101,7 +101,7 @@ void del_timeout(Timeout * t)
timeouts = t->next;
if (t->next)
t->next->prev = t->prev;
- free(t);
+ delete t;
}
/*************************************************************************/
diff --git a/src/users.c b/src/users.c
index c25e176d7..47a0ba1b9 100644
--- a/src/users.c
+++ b/src/users.c
@@ -123,7 +123,7 @@ void User::SetDisplayedHost(const std::string &shost)
throw "empty host? in MY services? it seems it's more likely than I thought.";
if (this->vhost)
- free(this->vhost);
+ delete [] this->vhost;
this->vhost = sstrdup(shost.c_str());
if (debug)
@@ -138,7 +138,7 @@ void User::SetIdent(const std::string &ident)
throw "empty ident in SetIdent";
if (this->vident)
- free(this->vident);
+ delete [] this->vident;
this->vident = sstrdup(ident.c_str());
if (debug)
@@ -153,14 +153,14 @@ void User::SetRealname(const std::string &srealname)
throw "realname empty in SetRealname";
if (this->realname)
- free(this->realname);
+ delete [] this->realname;
this->realname = sstrdup(srealname.c_str());
if (this->na && (nick_identified(this) ||
(!(this->na->nc->flags & NI_SECURE) && nick_recognized(this))))
{
if (this->na->last_realname)
- free(this->na->last_realname);
+ delete [] this->na->last_realname;
this->na->last_realname = sstrdup(srealname.c_str());
}
@@ -191,7 +191,7 @@ User::~User()
srealname, this->server->name);
}
- free(srealname);
+ delete [] srealname;
}
send_event(EVENT_USER_LOGOFF, 1, this->nick);
@@ -207,18 +207,18 @@ User::~User()
if (debug >= 2)
alog("debug: User::~User(): free user data");
- free(this->username);
- free(this->host);
+ delete [] this->username;
+ delete [] this->host;
if (this->vhost)
- free(this->vhost);
+ delete [] this->vhost;
if (this->vident)
- free(this->vident);
+ delete [] this->vident;
if (this->uid)
- free(this->uid);
+ delete [] this->uid;
Anope_Free(this->realname);
- Anope_Free(this->hostip);
+ delete [] this->hostip;
if (debug >= 2)
alog("debug: User::~User(): remove from channels");
@@ -229,7 +229,7 @@ User::~User()
{
c2 = c->next;
chan_deluser(this, c->chan);
- free(c);
+ delete c;
c = c2;
}
@@ -245,12 +245,12 @@ User::~User()
while (ci)
{
ci2 = ci->next;
- free(ci);
+ delete ci;
ci = ci2;
}
if (this->nickTrack)
- free(this->nickTrack);
+ delete [] this->nickTrack;
if (debug >= 2)
alog("debug: User::~User(): delete from list");
@@ -316,11 +316,9 @@ void update_host(User * user)
|| (!(user->na->nc->flags & NI_SECURE)
&& nick_recognized(user)))) {
if (user->na->last_usermask)
- free(user->na->last_usermask);
+ delete [] user->na->last_usermask;
- user->na->last_usermask =
- (char *)smalloc(strlen(common_get_vident(user)) +
- strlen(common_get_vhost(user)) + 2);
+ user->na->last_usermask = new char[strlen(common_get_vident(user)) + strlen(common_get_vhost(user)) + 2];
sprintf(user->na->last_usermask, "%s@%s", common_get_vident(user),
common_get_vhost(user));
}
@@ -376,10 +374,10 @@ User *finduser(const char *nick)
if (debug >= 3)
alog("debug: finduser(%p)", nick);
-
+
if (isdigit(*nick) && ircd->ts6)
return find_byuid(nick);
-
+
user = userlist[HASH(nick)];
while (user && stricmp(user->nick, nick) != 0)
user = user->next;
@@ -545,7 +543,7 @@ User *do_nick(const char *source, const char *nick, const char *username, const
alog("LOGUSERS: %s (%s@%s) (%s) connected to the network (%s).", nick, username, host, logrealname, server);
}
}
- Anope_Free(logrealname);
+ delete [] logrealname;
}
/* We used to ignore the ~ which a lot of ircd's use to indicate no
@@ -683,7 +681,7 @@ User *do_nick(const char *source, const char *nick, const char *username, const
nick, user->server->name);
}
if (logrealname) {
- free(logrealname);
+ delete [] logrealname;
}
}
@@ -742,10 +740,8 @@ User *do_nick(const char *source, const char *nick, const char *username, const
user->na->last_seen = time(NULL);
if (user->na->last_usermask)
- free(user->na->last_usermask);
- user->na->last_usermask =
- (char *)smalloc(strlen(common_get_vident(user)) +
- strlen(common_get_vhost(user)) + 2);
+ delete [] user->na->last_usermask;
+ user->na->last_usermask = new char[strlen(common_get_vident(user)) + strlen(common_get_vhost(user)) + 2];
sprintf(user->na->last_usermask, "%s@%s",
common_get_vident(user), common_get_vhost(user));
@@ -836,7 +832,7 @@ void do_quit(const char *source, int ac, const char **av)
&& (na->status & (NS_IDENTIFIED | NS_RECOGNIZED))) {
na->last_seen = time(NULL);
if (na->last_quit)
- free(na->last_quit);
+ delete [] na->last_quit;
na->last_quit = *av[0] ? sstrdup(av[0]) : NULL;
}
if (LimitSessions && !is_ulined(user->server->name)) {
@@ -872,7 +868,7 @@ void do_kill(const char *nick, const char *msg)
&& (na->status & (NS_IDENTIFIED | NS_RECOGNIZED))) {
na->last_seen = time(NULL);
if (na->last_quit)
- free(na->last_quit);
+ delete [] na->last_quit;
na->last_quit = *msg ? sstrdup(msg) : NULL;
}
@@ -966,7 +962,7 @@ int match_usermask(const char *mask, User * user)
}
host = strtok(NULL, "");
if (!username || !host) {
- free(mask2);
+ delete [] mask2;
return 0;
}
@@ -981,7 +977,7 @@ int match_usermask(const char *mask, User * user)
|| match_wild_nocase(host, user->vhost));
}
- free(mask2);
+ delete [] mask2;
return result;
}
@@ -1011,7 +1007,7 @@ int match_userip(const char *mask, User * user, char *iphost)
}
host = strtok(NULL, "");
if (!username || !host) {
- free(mask2);
+ delete [] mask2;
return 0;
}
@@ -1026,7 +1022,7 @@ int match_userip(const char *mask, User * user, char *iphost)
|| match_wild_nocase(host, user->vhost));
}
- free(mask2);
+ delete [] mask2;
return result;
}
@@ -1060,7 +1056,7 @@ void split_usermask(const char *mask, char **nick, char **user,
*nick = sstrdup(*nick);
*user = sstrdup(*user);
*host = sstrdup(*host);
- free(mask2);
+ delete [] mask2;
}
/*************************************************************************/
@@ -1083,7 +1079,7 @@ char *create_mask(User * u)
* will never be longer than this (and will often be shorter), thus we
* can use strcpy() and sprintf() safely.
*/
- end = mask = (char *)smalloc(ulen + strlen(common_get_vhost(u)) + 3);
+ end = mask = new char[ulen + strlen(common_get_vhost(u)) + 3];
end += sprintf(end, "%s%s@",
(ulen <
(*(common_get_vident(u)) ==
@@ -1102,13 +1098,13 @@ char *create_mask(User * u)
*strrchr(s, '.') = 0;
sprintf(end, "%s.*", s);
- free(s);
+ delete [] s;
} else {
if ((s = strchr(common_get_vhost(u), '.')) && strchr(s + 1, '.')) {
s = sstrdup(strchr(common_get_vhost(u), '.') - 1);
*s = '*';
strcpy(end, s);
- free(s);
+ delete [] s;
} else {
strcpy(end, common_get_vhost(u));
}