mirror of
https://github.com/anope/anope.git
synced 2026-07-02 09:26:38 +02:00
Apply some changes based on possible "flaws" found with flawfinder.
git-svn-id: http://anope.svn.sourceforge.net/svnroot/anope/trunk@2574 5417fbe8-f217-4b02-8779-1006273d7864
This commit is contained in:
+1
-1
@@ -213,7 +213,7 @@ int main(int ac, char **av)
|
||||
fprintf(stderr, "%s:%d: Out of memory!\n", filename, linenum);
|
||||
return 2;
|
||||
}
|
||||
sprintf(strings[curstring] + i, "%s\n", line);
|
||||
snprintf(strings[curstring] + i, strlen(line) + 2, "%s\n", line);
|
||||
}
|
||||
} else {
|
||||
if ((curstring = stringnum(line)) < 0) {
|
||||
|
||||
+33
-33
@@ -364,7 +364,7 @@ char *chan_get_modes(Channel * chan, int complete, int plus)
|
||||
if (plus || !cmp->MinusNoArg)
|
||||
{
|
||||
chan->GetParam(cmp->Name, ¶m);
|
||||
|
||||
|
||||
if (!param.empty())
|
||||
{
|
||||
value = const_cast<char *>(param.c_str());
|
||||
@@ -527,7 +527,7 @@ void chan_set_modes(const char *source, Channel *chan, int ac, const char **av,
|
||||
alog("debug: Setting %c%c on %s for %s", (add ? '+' : '-'),
|
||||
mode, chan->name, user->nick);
|
||||
|
||||
if (add)
|
||||
if (add)
|
||||
chan_set_user_status(chan, user, cms->Status);
|
||||
/* If this does +o, remove any DEOPPED flag */
|
||||
else
|
||||
@@ -565,7 +565,7 @@ void chan_set_modes(const char *source, Channel *chan, int ac, const char **av,
|
||||
if (cm->Type == MODE_PARAM)
|
||||
{
|
||||
cmp = static_cast<ChannelModeParam *>(cm);
|
||||
|
||||
|
||||
if (add || !cmp->MinusNoArg)
|
||||
{
|
||||
if (ac == 0)
|
||||
@@ -1688,67 +1688,67 @@ void chan_set_correct_modes(User * user, Channel * c, int give_modes)
|
||||
/* No need for strn* functions for modebuf, as every possible string
|
||||
* will always fit in. -GD
|
||||
*/
|
||||
strcpy(modebuf, "");
|
||||
strcpy(userbuf, "");
|
||||
strlcpy(modebuf, "", sizeof(modebuf));
|
||||
strlcpy(userbuf, "", sizeof(userbuf));
|
||||
if (add_modes > 0) {
|
||||
strcat(modebuf, "+");
|
||||
if ((add_modes & CUS_OWNER) && !(status & CUS_OWNER)) {
|
||||
strcat(modebuf, &owner->ModeChar);
|
||||
strcat(userbuf, " ");
|
||||
strcat(userbuf, user->nick);
|
||||
strlcat(modebuf, &owner->ModeChar, sizeof(modebuf));
|
||||
strlcat(userbuf, " ", sizeof(userbuf));
|
||||
strlcat(userbuf, user->nick, sizeof(userbuf));
|
||||
} else {
|
||||
add_modes &= ~CUS_OWNER;
|
||||
}
|
||||
if ((add_modes & CUS_PROTECT) && !(status & CUS_PROTECT)) {
|
||||
strcat(modebuf, &admin->ModeChar);
|
||||
strcat(userbuf, " ");
|
||||
strcat(userbuf, user->nick);
|
||||
strlcat(modebuf, &admin->ModeChar, sizeof(modebuf));
|
||||
strlcat(userbuf, " ", sizeof(userbuf));
|
||||
strlcat(userbuf, user->nick, sizeof(userbuf));
|
||||
} else {
|
||||
add_modes &= ~CUS_PROTECT;
|
||||
}
|
||||
if ((add_modes & CUS_OP) && !(status & CUS_OP)) {
|
||||
strcat(modebuf, "o");
|
||||
strcat(userbuf, " ");
|
||||
strcat(userbuf, user->nick);
|
||||
strlcat(modebuf, "o", sizeof(modebuf));
|
||||
strlcat(userbuf, " ", sizeof(userbuf));
|
||||
strlcat(userbuf, user->nick, sizeof(userbuf));
|
||||
} else {
|
||||
add_modes &= ~CUS_OP;
|
||||
}
|
||||
if ((add_modes & CUS_HALFOP) && !(status & CUS_HALFOP)) {
|
||||
strcat(modebuf, "h");
|
||||
strcat(userbuf, " ");
|
||||
strcat(userbuf, user->nick);
|
||||
strlcat(modebuf, "h", sizeof(modebuf));
|
||||
strlcat(userbuf, " ", sizeof(userbuf));
|
||||
strlcat(userbuf, user->nick, sizeof(userbuf));
|
||||
} else {
|
||||
add_modes &= ~CUS_HALFOP;
|
||||
}
|
||||
if ((add_modes & CUS_VOICE) && !(status & CUS_VOICE)) {
|
||||
strcat(modebuf, "v");
|
||||
strcat(userbuf, " ");
|
||||
strcat(userbuf, user->nick);
|
||||
strlcat(modebuf, "v", sizeof(modebuf));
|
||||
strlcat(userbuf, " ", sizeof(userbuf));
|
||||
strlcat(userbuf, user->nick, sizeof(userbuf));
|
||||
} else {
|
||||
add_modes &= ~CUS_VOICE;
|
||||
}
|
||||
}
|
||||
if (rem_modes > 0) {
|
||||
strcat(modebuf, "-");
|
||||
strlcat(modebuf, "-", sizeof(modebuf));
|
||||
if (rem_modes & CUS_OWNER) {
|
||||
strcat(modebuf, &owner->ModeChar);
|
||||
strcat(userbuf, " ");
|
||||
strcat(userbuf, user->nick);
|
||||
strlcat(modebuf, &owner->ModeChar, sizeof(modebuf));
|
||||
strlcat(userbuf, " ", sizeof(userbuf));
|
||||
strlcat(userbuf, user->nick, sizeof(userbuf));
|
||||
}
|
||||
if (rem_modes & CUS_PROTECT) {
|
||||
strcat(modebuf, &admin->ModeChar);
|
||||
strcat(userbuf, " ");
|
||||
strcat(userbuf, user->nick);
|
||||
strlcat(modebuf, &admin->ModeChar, sizeof(modebuf));
|
||||
strlcat(userbuf, " ", sizeof(userbuf));
|
||||
strlcat(userbuf, user->nick, sizeof(userbuf));
|
||||
}
|
||||
if (rem_modes & CUS_OP) {
|
||||
strcat(modebuf, "o");
|
||||
strcat(userbuf, " ");
|
||||
strcat(userbuf, user->nick);
|
||||
strlcat(modebuf, "o", sizeof(modebuf));
|
||||
strlcat(userbuf, " ", sizeof(userbuf));
|
||||
strlcat(userbuf, user->nick, sizeof(userbuf));
|
||||
}
|
||||
if (rem_modes & CUS_HALFOP) {
|
||||
strcat(modebuf, "h");
|
||||
strcat(userbuf, " ");
|
||||
strcat(userbuf, user->nick);
|
||||
strlcat(modebuf, "h", sizeof(modebuf));
|
||||
strlcat(userbuf, " ", sizeof(userbuf));
|
||||
strlcat(userbuf, user->nick, sizeof(userbuf));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
+1
-1
@@ -1227,7 +1227,7 @@ int check_kick(User * user, const char *chan, time_t chants)
|
||||
if (akick->flags & AK_ISNICK)
|
||||
get_idealban(ci, user, mask, sizeof(mask));
|
||||
else
|
||||
strcpy(mask, akick->u.mask);
|
||||
strlcpy(mask, akick->u.mask, sizeof(mask));
|
||||
reason = akick->reason ? akick->reason : CSAutokickReason;
|
||||
goto kick;
|
||||
}
|
||||
|
||||
+2
-3
@@ -213,10 +213,9 @@ class CommandCSAKick : public Command
|
||||
|
||||
if (!na) {
|
||||
split_usermask(mask, &nick, &user, &host);
|
||||
char *smask = new char[strlen(nick) + strlen(user) + strlen(host) + 3];
|
||||
std::string smask = std::string(nick) + "!" + user + "@" + host;
|
||||
freemask = 1;
|
||||
sprintf(smask, "%s!%s@%s", nick, user, host);
|
||||
mask = smask;
|
||||
mask = sstrdup(smask.c_str());
|
||||
delete [] nick;
|
||||
delete [] user;
|
||||
delete [] host;
|
||||
|
||||
+9
-11
@@ -25,26 +25,25 @@ class ENone : public Module
|
||||
ModuleManager::Attach(I_OnCheckPassword, this);
|
||||
}
|
||||
|
||||
EventReturn OnEncrypt(const char *src,int len,char *dest,int size)
|
||||
EventReturn OnEncrypt(const char *src,int len,char *dest,int size)
|
||||
{
|
||||
if(size>=len)
|
||||
if(size>=len)
|
||||
{
|
||||
memset(dest,0,size);
|
||||
strncpy(dest,src,len);
|
||||
dest[len] = '\0';
|
||||
return EVENT_ALLOW;
|
||||
strlcpy(dest,src,len);
|
||||
return EVENT_ALLOW;
|
||||
}
|
||||
return EVENT_STOP;
|
||||
}
|
||||
|
||||
EventReturn OnEncryptInPlace(char *buf, int size)
|
||||
EventReturn OnEncryptInPlace(char *buf, int size)
|
||||
{
|
||||
return EVENT_ALLOW;
|
||||
}
|
||||
|
||||
EventReturn OnEncryptCheckLen(int passlen, int bufsize)
|
||||
EventReturn OnEncryptCheckLen(int passlen, int bufsize)
|
||||
{
|
||||
if(bufsize>=passlen)
|
||||
if(bufsize>=passlen)
|
||||
{
|
||||
return EVENT_ALLOW;
|
||||
}
|
||||
@@ -53,13 +52,12 @@ class ENone : public Module
|
||||
|
||||
EventReturn OnDecrypt(const char *src, char *dest, int size) {
|
||||
memset(dest,0,size);
|
||||
strncpy(dest,src,size);
|
||||
dest[size] = '\0';
|
||||
strlcpy(dest,src,size);
|
||||
return EVENT_ALLOW;
|
||||
}
|
||||
|
||||
EventReturn OnCheckPassword(const char *plaintext, const char *password) {
|
||||
if(strcmp(plaintext,password)==0)
|
||||
if(strcmp(plaintext,password)==0)
|
||||
{
|
||||
return EVENT_ALLOW;
|
||||
}
|
||||
|
||||
+2
-2
@@ -117,8 +117,8 @@ class CommandNSGroup : public Command
|
||||
|
||||
if (na)
|
||||
{
|
||||
na->last_usermask = new char[u->GetIdent().length() + u->GetDisplayedHost().length() + 2];
|
||||
sprintf(na->last_usermask, "%s@%s", u->GetIdent().c_str(), u->GetDisplayedHost().c_str());
|
||||
std::string last_usermask = u->GetIdent() + "@" + u->GetDisplayedHost();
|
||||
na->last_usermask = sstrdup(last_usermask.c_str());
|
||||
na->last_realname = sstrdup(u->realname);
|
||||
na->time_registered = na->last_seen = time(NULL);
|
||||
|
||||
|
||||
@@ -49,8 +49,8 @@ class CommandNSConfirm : public Command
|
||||
}
|
||||
else
|
||||
{
|
||||
na->last_usermask = new char[u->GetIdent().length() + u->GetDisplayedHost().length() + 2];
|
||||
sprintf(na->last_usermask, "%s@%s", u->GetIdent().c_str(), u->GetDisplayedHost().c_str());
|
||||
std::string last_usermask = u->GetIdent() + "@" + u->GetDisplayedHost();
|
||||
na->last_usermask = sstrdup(last_usermask.c_str());
|
||||
na->last_realname = sstrdup(u->realname);
|
||||
if (NSAddAccessOnReg)
|
||||
na->nc->AddAccess(create_mask(u));
|
||||
|
||||
@@ -74,8 +74,8 @@ class CommandOSChanKill : public Command
|
||||
cunext = cu->next;
|
||||
if (is_oper(cu->user))
|
||||
continue;
|
||||
strncpy(mask, "*@", 3); /* Use *@" for the akill's, */
|
||||
strncat(mask, cu->user->host, HOSTMAX);
|
||||
strlcpy(mask, "*@", sizeof(mask)); /* Use *@" for the akill's, */
|
||||
strlcat(mask, cu->user->host, sizeof(mask));
|
||||
add_akill(NULL, mask, s_OperServ, expires, realreason);
|
||||
check_akill(cu->user->nick, cu->user->GetIdent().c_str(), cu->user->host, NULL, NULL);
|
||||
}
|
||||
|
||||
+8
-16
@@ -202,34 +202,26 @@ class CommandOSStats : public Command
|
||||
|
||||
CommandReturn DoStatsUplink(User *u)
|
||||
{
|
||||
char buf[512];
|
||||
int buflen, i;
|
||||
buf[0] = '\0';
|
||||
buflen = 511; /* How confusing, this is the amount of space left! */
|
||||
char buf[512] = "";
|
||||
int i;
|
||||
for (i = 0; capab_info[i].token; ++i)
|
||||
{
|
||||
if (uplink_capab & capab_info[i].flag)
|
||||
{
|
||||
strncat(buf, " ", buflen);
|
||||
--buflen;
|
||||
strncat(buf, capab_info[i].token, buflen);
|
||||
buflen -= strlen(capab_info[i].token);
|
||||
strlcat(buf, " ", sizeof(buf));
|
||||
strlcat(buf, capab_info[i].token, sizeof(buf));
|
||||
/* Special cases */
|
||||
if (capab_info[i].flag == CAPAB_CHANMODE)
|
||||
{
|
||||
strncat(buf, "=", buflen);
|
||||
--buflen;
|
||||
strncat(buf, ircd->chanmodes, buflen);
|
||||
buflen -= strlen(ircd->chanmodes);
|
||||
strlcat(buf, "=", sizeof(buf));
|
||||
strlcat(buf, ircd->chanmodes, sizeof(buf));
|
||||
}
|
||||
if (capab_info[i].flag == CAPAB_NICKCHARS)
|
||||
{
|
||||
strncat(buf, "=", buflen);
|
||||
--buflen;
|
||||
strlcat(buf, "=", sizeof(buf));
|
||||
if (ircd->nickchars)
|
||||
{
|
||||
strncat(buf, ircd->nickchars, buflen);
|
||||
buflen -= strlen(ircd->nickchars);
|
||||
strlcat(buf, ircd->nickchars, sizeof(buf));
|
||||
} /* leave blank if it was null */
|
||||
}
|
||||
}
|
||||
|
||||
+10
-10
@@ -145,16 +145,16 @@ HostCore *createHostCorelist(HostCore * next, const char *nick, char *vIdent,
|
||||
"Unable to allocate memory to create the vHost LL, problems i sense..");
|
||||
return NULL;
|
||||
}
|
||||
strcpy(next->nick, nick);
|
||||
strcpy(next->vHost, vHost);
|
||||
strcpy(next->creator, creator);
|
||||
strlcpy(next->nick, nick, strlen(nick) + 1);
|
||||
strlcpy(next->vHost, vHost, strlen(vHost) + 1);
|
||||
strlcpy(next->creator, creator, strlen(creator) + 1);
|
||||
if (vIdent) {
|
||||
if ((next->vIdent == NULL)) {
|
||||
ircdproto->SendGlobops(s_HostServ,
|
||||
"Unable to allocate memory to create the vHost LL, problems i sense..");
|
||||
return NULL;
|
||||
}
|
||||
strcpy(next->vIdent, vIdent);
|
||||
strlcpy(next->vIdent, vIdent, strlen(vIdent) + 1);
|
||||
} else {
|
||||
next->vIdent = NULL;
|
||||
}
|
||||
@@ -234,16 +234,16 @@ HostCore *insertHostCore(HostCore * phead, HostCore * prev, const char *nick,
|
||||
"Unable to allocate memory to create the vHost LL, problems i sense..");
|
||||
return NULL;
|
||||
}
|
||||
strcpy(newCore->nick, nick);
|
||||
strcpy(newCore->vHost, vHost);
|
||||
strcpy(newCore->creator, creator);
|
||||
strlcpy(newCore->nick, nick, strlen(nick) + 1);
|
||||
strlcpy(newCore->vHost, vHost, strlen(vHost) + 1);
|
||||
strlcpy(newCore->creator, creator, strlen(creator) + 1);
|
||||
if (vIdent) {
|
||||
if ((newCore->vIdent == NULL)) {
|
||||
ircdproto->SendGlobops(s_HostServ,
|
||||
"Unable to allocate memory to create the vHost LL, problems i sense..");
|
||||
return NULL;
|
||||
}
|
||||
strcpy(newCore->vIdent, vIdent);
|
||||
strlcpy(newCore->vIdent, vIdent, strlen(vIdent) + 1);
|
||||
} else {
|
||||
newCore->vIdent = NULL;
|
||||
}
|
||||
@@ -529,6 +529,6 @@ void set_lastmask(User * u)
|
||||
if (na->last_usermask)
|
||||
delete [] na->last_usermask;
|
||||
|
||||
na->last_usermask = new char[u->GetIdent().length() + u->GetDisplayedHost().length() + 2];
|
||||
sprintf(na->last_usermask, "%s@%s", u->GetIdent().c_str(), u->GetDisplayedHost().c_str());
|
||||
std::string last_usermask = u->GetIdent() + "@" + u->GetDisplayedHost();
|
||||
na->last_usermask = sstrdup(last_usermask.c_str());
|
||||
}
|
||||
|
||||
+1
-1
@@ -242,7 +242,7 @@ int MailValidate(const char *email)
|
||||
|
||||
if (!email)
|
||||
return 0;
|
||||
strcpy(copy, email);
|
||||
strlcpy(copy, email, sizeof(copy));
|
||||
|
||||
domain = strchr(copy, '@');
|
||||
if (!domain)
|
||||
|
||||
+2
-2
@@ -408,10 +408,10 @@ void rsend_notify(User * u, Memo * m, const char *chan)
|
||||
nick or channel */
|
||||
if (chan) {
|
||||
fmt = getstring(na, MEMO_RSEND_CHAN_MEMO_TEXT);
|
||||
sprintf(text, fmt, chan);
|
||||
snprintf(text, sizeof(text), fmt, chan);
|
||||
} else {
|
||||
fmt = getstring(na, MEMO_RSEND_NICK_MEMO_TEXT);
|
||||
sprintf(text, "%s", fmt);
|
||||
snprintf(text, sizeof(text), "%s", fmt);
|
||||
}
|
||||
|
||||
/* Send notification */
|
||||
|
||||
+2
-2
@@ -413,9 +413,9 @@ const char *expire_left(NickCore *nc, char *buf, int len, time_t expires)
|
||||
time_t now = time(NULL);
|
||||
|
||||
if (!expires) {
|
||||
strncpy(buf, getstring(nc, NO_EXPIRE), len);
|
||||
strlcpy(buf, getstring(nc, NO_EXPIRE), len);
|
||||
} else if (expires <= now) {
|
||||
strncpy(buf, getstring(nc, EXPIRES_SOON), len);
|
||||
strlcpy(buf, getstring(nc, EXPIRES_SOON), len);
|
||||
} else {
|
||||
time_t diff = expires - now + 59;
|
||||
|
||||
|
||||
@@ -45,15 +45,11 @@ static int moduleCopyFile(const char *name, const char *output)
|
||||
int srcfp;
|
||||
#endif
|
||||
char input[4096];
|
||||
int len;
|
||||
|
||||
strncpy(input, services_dir.c_str(), 4095);
|
||||
len = strlen(input);
|
||||
strncat(input, "/modules/", 4095 - len); /* Get full path with module extension */
|
||||
len = strlen(input);
|
||||
strncat(input, name, 4095 - len);
|
||||
len = strlen(output);
|
||||
strncat(input, MODULE_EXT, 4095 - len);
|
||||
strlcpy(input, services_dir.c_str(), sizeof(input));
|
||||
strlcat(input, "/modules/", sizeof(input)); /* Get full path with module extension */
|
||||
strlcat(input, name, sizeof(input));
|
||||
strlcat(input, MODULE_EXT, sizeof(input));
|
||||
|
||||
#ifndef _WIN32
|
||||
if ((srcfp = mkstemp(const_cast<char *>(output))) == -1)
|
||||
|
||||
@@ -826,9 +826,9 @@ void req_send_memos(User *u, char *vIdent, char *vHost)
|
||||
return;
|
||||
|
||||
if (vIdent)
|
||||
sprintf(host, "%s@%s", vIdent, vHost);
|
||||
snprintf(host, sizeof(host), "%s@%s", vIdent, vHost);
|
||||
else
|
||||
sprintf(host, "%s", vHost);
|
||||
snprintf(host, sizeof(host), "%s", vHost);
|
||||
|
||||
if (HSRequestMemoOper == 1)
|
||||
{
|
||||
|
||||
@@ -478,12 +478,12 @@ void fill_db_ptr(DBFile *dbptr, int version, int core_version,
|
||||
dbptr->db_version = version;
|
||||
dbptr->core_db_version = core_version;
|
||||
if (!service)
|
||||
strcpy(dbptr->service, service);
|
||||
strlcpy(dbptr->service, service, sizeof(dbptr->service));
|
||||
else
|
||||
strcpy(dbptr->service, "");
|
||||
strlcpy(dbptr->service, "", sizeof(dbptr->service));
|
||||
|
||||
strcpy(dbptr->filename, filename);
|
||||
snprintf(dbptr->temp_name, 261, "%s.temp", filename);
|
||||
strlcpy(dbptr->filename, filename, sizeof(dbptr->filename));
|
||||
snprintf(dbptr->temp_name, sizeof(dbptr->temp_name), "%s.temp", filename);
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
+13
-11
@@ -670,9 +670,8 @@ int validate_user(User * u)
|
||||
na->last_seen = time(NULL);
|
||||
if (na->last_usermask)
|
||||
delete [] na->last_usermask;
|
||||
na->last_usermask = new char[u->GetIdent().length() + u->GetDisplayedHost().length() + 2];
|
||||
sprintf(na->last_usermask, "%s@%s", u->GetIdent().c_str(),
|
||||
u->GetDisplayedHost().c_str());
|
||||
std::string last_usermask = u->GetIdent() + "@" + u->GetDisplayedHost();
|
||||
na->last_usermask = sstrdup(last_usermask.c_str());
|
||||
if (na->last_realname)
|
||||
delete [] na->last_realname;
|
||||
na->last_realname = sstrdup(u->realname);
|
||||
@@ -937,23 +936,24 @@ bool is_on_access(User *u, NickCore *nc)
|
||||
char *buf;
|
||||
char *buf2 = NULL;
|
||||
char *buf3 = NULL;
|
||||
std::string tmp_buf;
|
||||
|
||||
if (!u || !nc || nc->access.empty())
|
||||
return false;
|
||||
|
||||
buf = new char[u->GetIdent().length() + strlen(u->host) + 2];
|
||||
sprintf(buf, "%s@%s", u->GetIdent().c_str(), u->host);
|
||||
tmp_buf = u->GetIdent() + "@" + u->host;
|
||||
buf = sstrdup(tmp_buf.c_str());
|
||||
if (ircd->vhost)
|
||||
{
|
||||
if (u->vhost)
|
||||
{
|
||||
buf2 = new char[u->GetIdent().length() + strlen(u->vhost) + 2];
|
||||
sprintf(buf2, "%s@%s", u->GetIdent().c_str(), u->vhost);
|
||||
tmp_buf = u->GetIdent() + "@" + u->vhost;
|
||||
buf2 = sstrdup(tmp_buf.c_str());
|
||||
}
|
||||
if (!u->GetCloakedHost().empty())
|
||||
{
|
||||
buf3 = new char[u->GetIdent().length() + u->GetCloakedHost().length() + 2];
|
||||
sprintf(buf3, "%s@%s", u->GetIdent().c_str(), u->GetCloakedHost().c_str());
|
||||
tmp_buf = u->GetIdent() + "@" + u->GetCloakedHost();
|
||||
buf3 = sstrdup(tmp_buf.c_str());
|
||||
}
|
||||
}
|
||||
|
||||
@@ -980,8 +980,10 @@ bool is_on_access(User *u, NickCore *nc)
|
||||
delete [] buf;
|
||||
if (ircd->vhost)
|
||||
{
|
||||
delete [] buf2;
|
||||
delete [] buf3;
|
||||
if (buf2)
|
||||
delete [] buf2;
|
||||
if (buf3)
|
||||
delete [] buf3;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
@@ -154,7 +154,7 @@ static char currentpass[1024];
|
||||
/* PASS */
|
||||
void inspircd_cmd_pass(const char *pass)
|
||||
{
|
||||
strncpy(currentpass, pass, 1024);
|
||||
strlcpy(currentpass, pass, sizeof(currentpass));
|
||||
}
|
||||
|
||||
|
||||
@@ -568,8 +568,8 @@ int anope_event_fjoin(const char *source, int ac, const char **av)
|
||||
}
|
||||
}
|
||||
}
|
||||
strncat(nicklist, prefixandnick, 513);
|
||||
strncat(nicklist, " ", 513);
|
||||
strlcat(nicklist, prefixandnick, sizeof(nicklist));
|
||||
strlcat(nicklist, " ", sizeof(nicklist));
|
||||
delete [] curnick_real;
|
||||
nlen = 0;
|
||||
}
|
||||
|
||||
@@ -159,7 +159,7 @@ static char currentpass[1024];
|
||||
/* PASS */
|
||||
void inspircd_cmd_pass(const char *pass)
|
||||
{
|
||||
strncpy(currentpass, pass, 1024);
|
||||
strlcpy(currentpass, pass, sizeof(currentpass));
|
||||
}
|
||||
|
||||
|
||||
@@ -645,8 +645,8 @@ int anope_event_fjoin(const char *source, int ac, const char **av)
|
||||
|
||||
// Much as I hate goto.. I can't `break 2' to get here.. XXX ugly
|
||||
endnick:
|
||||
strncat(nicklist, prefixandnick, 513);
|
||||
strncat(nicklist, " ", 513);
|
||||
strlcat(nicklist, prefixandnick, sizeof(nicklist));
|
||||
strlcat(nicklist, " ", sizeof(nicklist));
|
||||
delete [] curnick_real;
|
||||
nlen = 0;
|
||||
}
|
||||
@@ -901,7 +901,7 @@ int anope_event_uid(const char *source, int ac, const char **av)
|
||||
Server *s = findserver_uid(servlist, source);
|
||||
uint32 *ad = reinterpret_cast<uint32 *>(&addy);
|
||||
int ts = strtoul(av[1], NULL, 10);
|
||||
|
||||
|
||||
/* Check if the previously introduced user was Id'd for the nickgroup of the nick he s currently using.
|
||||
* If not, validate the user. ~ Viper*/
|
||||
user = prev_u_intro;
|
||||
|
||||
@@ -822,7 +822,7 @@ int anope_event_sethost(const char *source, int ac, const char **av)
|
||||
|
||||
/* If a user has a custom host and a server splits and reconnects
|
||||
* Unreal does not send the users cloaked host to Anope.. so we do not know it.
|
||||
* However, they will be +t if this is the case, so we will set their vhost
|
||||
* However, they will be +t if this is the case, so we will set their vhost
|
||||
* to the sethost value (which really is their vhost) and clear the chost.
|
||||
* The chost will be request later (if needed) - Adam
|
||||
*/
|
||||
@@ -1024,7 +1024,7 @@ int anope_event_userhost(const char *source, int ac, const char **av)
|
||||
*/
|
||||
if (ac < 2 || !av[1] || !*av[1])
|
||||
return MOD_CONT;
|
||||
|
||||
|
||||
std::string reply = av[1];
|
||||
std::string user = std::string(reply.begin(), std::find(reply.begin(), reply.end(), '='));
|
||||
if (user[user.length() - 1] == '*')
|
||||
@@ -1130,7 +1130,7 @@ bool ChannelModeFlood::IsValid(const char *value)
|
||||
if (*value != ':' && strtoul((*value == '*' ? value + 1 : value), &dp, 10) > 0 && *dp == ':' && *(++dp) && strtoul(dp, &end, 10) > 0 && !*end) return 1;
|
||||
else {
|
||||
/* '['<number><1 letter>[optional: '#'+1 letter],[next..]']'':'<number> */
|
||||
strncpy(xbuf, value, sizeof(xbuf));
|
||||
strlcpy(xbuf, value, sizeof(xbuf));
|
||||
p2 = strchr(xbuf + 1, ']');
|
||||
if (!p2) return 0;
|
||||
*p2 = '\0';
|
||||
|
||||
+17
-18
@@ -30,7 +30,7 @@ time_t maxusertime;
|
||||
User::User(const std::string &snick, const std::string &suid)
|
||||
{
|
||||
User **list;
|
||||
|
||||
|
||||
if (snick.empty())
|
||||
throw "what the craq, empty nick passed to constructor";
|
||||
|
||||
@@ -46,7 +46,7 @@ User::User(const std::string &snick, const std::string &suid)
|
||||
founder_chans = NULL;
|
||||
invalid_pw_count = timestamp = my_signon = invalid_pw_time = lastmemosend = lastnickreg = lastmail = 0;
|
||||
OnAccess = false;
|
||||
|
||||
|
||||
strscpy(this->nick, snick.c_str(), NICKMAX);
|
||||
this->uid = suid;
|
||||
list = &userlist[HASH(this->nick)];
|
||||
@@ -101,7 +101,7 @@ void User::SetNewNick(const std::string &newnick)
|
||||
if (*list)
|
||||
(*list)->prev = this;
|
||||
*list = this;
|
||||
|
||||
|
||||
OnAccess = false;
|
||||
NickAlias *na = findnick(this->nick);
|
||||
if (na)
|
||||
@@ -143,12 +143,12 @@ void User::SetCloakedHost(const std::string &newhost)
|
||||
{
|
||||
if (newhost.empty())
|
||||
throw "empty host in User::SetCloakedHost";
|
||||
|
||||
|
||||
chost = newhost;
|
||||
|
||||
if (debug)
|
||||
alog("debug: %s changed cloaked host to %s", this->nick, newhost.c_str());
|
||||
|
||||
|
||||
this->UpdateHost();
|
||||
}
|
||||
|
||||
@@ -260,9 +260,9 @@ User::~User()
|
||||
|
||||
if (debug >= 2)
|
||||
alog("debug: User::~User(): free user data");
|
||||
|
||||
|
||||
delete [] this->host;
|
||||
|
||||
|
||||
if (this->vhost)
|
||||
delete [] this->vhost;
|
||||
|
||||
@@ -377,14 +377,14 @@ void User::AutoID(const char *account)
|
||||
{
|
||||
NickCore *tnc;
|
||||
NickAlias *na;
|
||||
|
||||
if ((tnc = findcore(account)))
|
||||
|
||||
if ((tnc = findcore(account)))
|
||||
{
|
||||
this->nc = tnc;
|
||||
if ((na = findnick(this->nick)) && na->nc == tnc)
|
||||
{
|
||||
{
|
||||
check_memos(this);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -407,8 +407,8 @@ void User::UpdateHost()
|
||||
if (na->last_usermask)
|
||||
delete [] na->last_usermask;
|
||||
|
||||
na->last_usermask = new char[this->GetIdent().length() + this->GetDisplayedHost().length() + 2];
|
||||
sprintf(na->last_usermask, "%s@%s", this->GetIdent().c_str(), this->GetDisplayedHost().c_str());
|
||||
std::string last_usermask = this->GetIdent() + "@" + this->GetDisplayedHost();
|
||||
na->last_usermask = sstrdup(last_usermask.c_str());
|
||||
}
|
||||
|
||||
OnAccess = false;
|
||||
@@ -739,8 +739,8 @@ User *do_nick(const char *source, const char *nick, const char *username, const
|
||||
*/
|
||||
if (is_sync(findserver(servlist, server)) && checkDefCon(DEFCON_AKILL_NEW_CLIENTS) && !is_ulined(server))
|
||||
{
|
||||
strncpy(mask, "*@", 3);
|
||||
strncat(mask, host, HOSTMAX);
|
||||
strlcpy(mask, "*@", sizeof(mask));
|
||||
strlcat(mask, host, sizeof(mask));
|
||||
alog("DEFCON: adding akill for %s", mask);
|
||||
add_akill(NULL, mask, s_OperServ,
|
||||
time(NULL) + DefConAKILL,
|
||||
@@ -876,9 +876,8 @@ User *do_nick(const char *source, const char *nick, const char *username, const
|
||||
|
||||
if (ntmp->last_usermask)
|
||||
delete [] ntmp->last_usermask;
|
||||
ntmp->last_usermask = new char[user->GetIdent().length() + user->GetDisplayedHost().length() + 2];
|
||||
sprintf(ntmp->last_usermask, "%s@%s",
|
||||
user->GetIdent().c_str(), user->GetDisplayedHost().c_str());
|
||||
std::string last_usermask = user->GetIdent() + "@" + user->GetDisplayedHost();
|
||||
ntmp->last_usermask = sstrdup(last_usermask.c_str());
|
||||
ircdproto->SetAutoIdentificationToken(user);
|
||||
alog("%s: %s!%s@%s automatically identified for nick %s", s_NickServ, user->nick, user->GetIdent().c_str(), user->host, user->nick);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user