X-Git-Url: https://arthur.barton.de/cgi-bin/gitweb.cgi?p=ngircd-alex.git;a=blobdiff_plain;f=src%2Fngircd%2Firc-info.c;h=42b22643c63405a0f4a16d43f324636a3fd9584e;hp=c2f4910e47645807251c82e9815e61ccdbc08279;hb=9fbf592924d4ed1e37b42f295ec9c9ab0fc3cd08;hpb=566a451299cab41810bafc5ed11a5021e30d9b3d diff --git a/src/ngircd/irc-info.c b/src/ngircd/irc-info.c index c2f4910e..42b22643 100644 --- a/src/ngircd/irc-info.c +++ b/src/ngircd/irc-info.c @@ -1129,7 +1129,7 @@ IRC_WHOIS( CLIENT *Client, REQUEST *Req ) unsigned int match_count = 0, found = 0; bool has_wildcards, is_remote; bool got_wildcard = false; - const char *query; + char mask[COMMAND_LEN], *query; assert( Client != NULL ); assert( Req != NULL ); @@ -1170,7 +1170,8 @@ IRC_WHOIS( CLIENT *Client, REQUEST *Req ) Req->argv[0], Req->argv[1]); is_remote = Client_Conn(from) < 0; - for (query = strtok(Req->argv[Req->argc - 1], ","); + strlcpy(mask, Req->argv[Req->argc - 1], sizeof(mask)); + for (query = strtok(ngt_LowerStr(mask), ","); query && found < 3; query = strtok(NULL, ","), found++) { @@ -1185,7 +1186,7 @@ IRC_WHOIS( CLIENT *Client, REQUEST *Req ) */ if (!has_wildcards || is_remote) { c = Client_Search(query); - if (c) { + if (c && Client_Type(c) == CLIENT_USER) { if (!IRC_WHOIS_SendReply(Client, from, c)) return DISCONNECTED; } else {