diff options
Diffstat (limited to 'src/core')
| -rw-r--r-- | src/core/cs_akick.c | 5 | ||||
| -rw-r--r-- | src/core/enc_none.c | 20 | ||||
| -rw-r--r-- | src/core/ns_group.c | 4 | ||||
| -rw-r--r-- | src/core/ns_register.c | 4 | ||||
| -rw-r--r-- | src/core/os_chankill.c | 4 | ||||
| -rw-r--r-- | src/core/os_stats.c | 24 |
6 files changed, 25 insertions, 36 deletions
diff --git a/src/core/cs_akick.c b/src/core/cs_akick.c index a9e38fbd2..ede481bcb 100644 --- a/src/core/cs_akick.c +++ b/src/core/cs_akick.c @@ -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; diff --git a/src/core/enc_none.c b/src/core/enc_none.c index 7f38d8532..91784bca4 100644 --- a/src/core/enc_none.c +++ b/src/core/enc_none.c @@ -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; } diff --git a/src/core/ns_group.c b/src/core/ns_group.c index af181e092..ec00ec69d 100644 --- a/src/core/ns_group.c +++ b/src/core/ns_group.c @@ -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); diff --git a/src/core/ns_register.c b/src/core/ns_register.c index c3f068326..6fd8e2455 100644 --- a/src/core/ns_register.c +++ b/src/core/ns_register.c @@ -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)); diff --git a/src/core/os_chankill.c b/src/core/os_chankill.c index 42d9d061b..6eb9e9456 100644 --- a/src/core/os_chankill.c +++ b/src/core/os_chankill.c @@ -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); } diff --git a/src/core/os_stats.c b/src/core/os_stats.c index cd3d41a34..937590e57 100644 --- a/src/core/os_stats.c +++ b/src/core/os_stats.c @@ -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 */ } } |
