diff options
author | Robin Burchell w00t@inspircd.org <Robin Burchell w00t@inspircd.org@5417fbe8-f217-4b02-8779-1006273d7864> | 2008-09-30 18:45:13 +0000 |
---|---|---|
committer | Robin Burchell w00t@inspircd.org <Robin Burchell w00t@inspircd.org@5417fbe8-f217-4b02-8779-1006273d7864> | 2008-09-30 18:45:13 +0000 |
commit | e03c14cf1da821f98ec607732117636deedee780 (patch) | |
tree | fdb92e367e7b64cb92ad56e3c7959bde36461c2a | |
parent | a3a360394e4bc9e1c33a278e05364a0a1a610421 (diff) |
Initialise everything properly to avoid crashes. Also, fix a prototype to fix runtime halt due to unresolved sym.
git-svn-id: http://anope.svn.sourceforge.net/svnroot/anope/trunk@1274 5417fbe8-f217-4b02-8779-1006273d7864
-rw-r--r-- | include/extern.h | 4 | ||||
-rw-r--r-- | src/users.c | 11 |
2 files changed, 13 insertions, 2 deletions
diff --git a/include/extern.h b/include/extern.h index 5bbb39540..2881b88ec 100644 --- a/include/extern.h +++ b/include/extern.h @@ -1299,8 +1299,8 @@ E int anope_flood_mode_check(const char *value); E void anope_cmd_jupe(const char *jserver, const char *who, const char *reason); -E int anope_valid_nick(char *nick); -E int anope_valid_chan(char *chan); +E int anope_valid_nick(const char *nick); +E int anope_valid_chan(const char *chan); E char *common_get_vident(User *u); E char *common_get_vhost(User *u); diff --git a/src/users.c b/src/users.c index 1ba88f426..f203222fe 100644 --- a/src/users.c +++ b/src/users.c @@ -36,6 +36,17 @@ User::User(const std::string &nick) // XXX: we should also duplicate-check here. + /* we used to do this by calloc, no more. */ + this->next = NULL; + this->prev = NULL; + username = host = hostip = vhost = vident = realname = nickTrack = uid = NULL; + server = NULL; + na = NULL; + chans = NULL; + founder_chans = NULL; + moduleData = NULL; + timestamp = my_signon = svid = mode = invalid_pw_time = lastmemosend = lastnickreg = lastmail = 0; + strscpy(this->nick, nick.c_str(), NICKMAX); list = &userlist[HASH(this->nick)]; this->next = *list; |