repo: ngircd
action: commit
revision: 
path_from: 
revision_from: 005340c83f3f481bdcdc6a03ae9b9b2973248ceb:
path_to: 
revision_to: 
git.thebackupbox.net
ngircd
git clone git://git.thebackupbox.net/ngircd
commit 005340c83f3f481bdcdc6a03ae9b9b2973248ceb
Author: Alexander Barton 
Date:   Wed Sep 26 23:28:13 2012 +0200

    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 74d8b9d116b3bb71de2388a0c71838f0c86f4e29..
index ..99cd26f45818a1fa3a42bb36c67f58a4c7ac86b2 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;

-----END OF PAGE-----