From: michael Date: Sat, 14 Mar 2015 19:03:10 +0000 (+0000) Subject: - irc.c: cleaned up userinfo_create() X-Git-Tag: 1.0.4~11 X-Git-Url: http://git.serene-ircd.net/?a=commitdiff_plain;h=ed88b197ecaa35d736c33e57bb1833ce642baecb;p=hopm.git - irc.c: cleaned up userinfo_create() git-svn-id: svn://svn.ircd-hybrid.org/svnroot/hopm/branches/1.0.x@5692 82007160-df01-0410-b94d-b575c5fd34c7 --- diff --git a/src/irc.c b/src/irc.c index 9b0d73b..ee0e185 100644 --- a/src/irc.c +++ b/src/irc.c @@ -60,7 +60,7 @@ static void irc_parse(void); static const struct ChannelConf *get_channel(const char *); -static struct UserInfo *userinfo_create(char *); +static struct UserInfo *userinfo_create(const char *); static void userinfo_free(struct UserInfo *source); static void m_ping(char *[], unsigned int, const char *, const struct UserInfo *); @@ -587,18 +587,16 @@ get_channel(const char *channel) * pointer to new UserInfo struct, or NULL if parsing failed */ static struct UserInfo * -userinfo_create(char *source) +userinfo_create(const char *source) { struct UserInfo *ret; - char *nick; - char *username; - char *hostname; - char *tmp; - int i, len; - - nick = username = hostname = NULL; - tmp = xstrdup(source); - len = strlen(tmp); + char *nick = NULL; + char *username = NULL; + char *hostname = NULL; + char tmp[MSGLENMAX]; + size_t i, len; + + len = strlcpy(tmp, source, sizeof(tmp)); nick = tmp; for (i = 0; i < len; ++i) @@ -616,19 +614,14 @@ userinfo_create(char *source) } } - if (nick == NULL || username == NULL || hostname == NULL) - { - xfree(tmp); + if (username == NULL || hostname == NULL) return NULL; - } ret = xcalloc(sizeof *ret); ret->irc_nick = xstrdup(nick); ret->irc_username = xstrdup(username); ret->irc_hostname = xstrdup(hostname); - xfree(tmp); - return ret; };