commit 005340c83f3f481bdcdc6a03ae9b9b2973248ceb from: Alexander Barton date: Wed Sep 26 21:28:13 2012 UTC Simplify check for valid user names in IRC_USER(). Patches from Federico G. Schwindt, thanks! (cherry picked from commit a44b7126227ba1118ec02b399e31b08102af5e8c and 6fbe9583753b2620da275676cde46a89cb4d06c2) commit - d21afce2b6fdc919a80c4eb1d6ba781c1cf63f3c commit + 005340c83f3f481bdcdc6a03ae9b9b2973248ceb blob - 74d8b9d116b3bb71de2388a0c71838f0c86f4e29 blob + 99cd26f45818a1fa3a42bb36c67f58a4c7ac86b2 --- src/ngircd/irc-login.c +++ 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;