]> jfr.im git - solanum.git/blobdiff - modules/m_whois.c
whois: Fix UID leak.
[solanum.git] / modules / m_whois.c
index 102a0836e29745c4d2505d6505733c5be8a545e9..65b169b0f2169bbca787b1426a6f56460c89d04e 100644 (file)
@@ -44,6 +44,7 @@
 #include "hook.h"
 #include "s_newconf.h"
 #include "ipv4_from_ipv6.h"
+#include "ratelimit.h"
 
 static void do_whois(struct Client *client_p, struct Client *source_p, int parc, const char *parv[]);
 static void single_whois(struct Client *source_p, struct Client *target_p, int operspy);
@@ -89,7 +90,7 @@ m_whois(struct Client *client_p, struct Client *source_p, int parc, const char *
                if(!IsOper(source_p))
                {
                        /* seeing as this is going across servers, we should limit it */
-                       if((last_used + ConfigFileEntry.pace_wait_simple) > rb_current_time())
+                       if((last_used + ConfigFileEntry.pace_wait_simple) > rb_current_time() || !ratelimit_client(source_p, 2))
                        {
                                sendto_one(source_p, form_str(RPL_LOAD2HI),
                                           me.name, source_p->name, "WHOIS");
@@ -188,11 +189,7 @@ do_whois(struct Client *client_p, struct Client *source_p, int parc, const char
                nick++;
        }
 
-       if(MyClient(source_p))
-               target_p = find_named_person(nick);
-       else
-               target_p = find_person(nick);
-
+       target_p = find_named_person(nick);
        if(target_p != NULL)
        {
                if(operspy)