From: Alexander Barton Date: Wed, 26 Sep 2012 21:28:13 +0000 (+0200) Subject: Simplify check for valid user names in IRC_USER(). X-Git-Tag: rel-20-rc1~62 X-Git-Url: https://arthur.barton.de/cgi-bin/gitweb.cgi?p=ngircd-alex.git;a=commitdiff_plain;h=005340c83f3f481bdcdc6a03ae9b9b2973248ceb Simplify check for valid user names in IRC_USER(). Patches from Federico G. Schwindt, thanks! (cherry picked from commit a44b7126227ba1118ec02b399e31b08102af5e8c and 6fbe9583753b2620da275676cde46a89cb4d06c2) --- diff --git a/src/ngircd/irc-login.c b/src/ngircd/irc-login.c index 74d8b9d1..99cd26f4 100644 --- a/src/ngircd/irc-login.c +++ b/src/ngircd/irc-login.c @@ -18,6 +18,7 @@ #include "imp.h" #include +#include #include #include #include @@ -422,11 +423,9 @@ IRC_USER(CLIENT * Client, REQUEST * Req) punctuation is allowed.*/ ptr = Req->argv[0]; while (*ptr) { - if ((*ptr < '0' || *ptr > '9') && - (*ptr < 'A' || *ptr > 'Z') && - (*ptr < 'a' || *ptr > 'z') && - (*ptr != '+') && (*ptr != '-') && - (*ptr != '.') && (*ptr != '_')) { + if (!isalnum(*ptr) && + *ptr != '+' && *ptr != '-' && + *ptr != '.' && *ptr != '_') { Conn_Close(Client_Conn(Client), NULL, "Invalid user name", true); return DISCONNECTED;