]> jfr.im git - irc/unrealircd/unrealircd.git/commitdiff
Index: Changes
authorstskeeps <redacted>
Tue, 24 Apr 2007 09:03:26 +0000 (09:03 +0000)
committerstskeeps <redacted>
Tue, 24 Apr 2007 09:03:26 +0000 (09:03 +0000)
===================================================================
RCS file: /home/cmunk/ircsystems/cvsroot/unreal/Changes,v
retrieving revision 1.1.1.1.2.1.2.1.2.2360
diff -u -r1.1.1.1.2.1.2.1.2.2360 Changes
--- Changes 24 Apr 2007 08:54:04 -0000 1.1.1.1.2.1.2.1.2.2360
+++ Changes 24 Apr 2007 09:03:21 -0000
@@ -1591,3 +1591,6 @@
 - #0003146 reported by vonitsanet, regarding Modes O,S (etc) not rejected for modes-on-connect
   fixed by djGrrr
 - #0003289 suggested and patched by fbi, adding (Ping timeout: 182 seconds)
+- #0002932 reported by therock247uk, patched by WolfSage, regarding Local
+  opers can /chghost /chgident /chgname on someone thats on another server on
+  the network

Changes
src/modules/m_chghost.c
src/modules/m_chgident.c
src/modules/m_chgname.c

diff --git a/Changes b/Changes
index 7601523230a99480131f9aac29498442dca178fd..f0dc0ea533c1e1fb53eb79c1a07a7ece1cb84a62 100644 (file)
--- a/Changes
+++ b/Changes
@@ -1591,3 +1591,6 @@ MOTDs
 - #0003146 reported by vonitsanet, regarding Modes O,S (etc) not rejected for modes-on-connect 
   fixed by djGrrr
 - #0003289 suggested and patched by fbi, adding (Ping timeout: 182 seconds)
+- #0002932 reported by therock247uk, patched by WolfSage, regarding Local
+  opers can /chghost /chgident /chgname on someone thats on another server on
+  the network 
index 81127d7b74846ecd8d334fd9069bb98ed23ca004..dce18d17c289fe1ed06e7037447deb6c3e136356 100644 (file)
@@ -146,6 +146,13 @@ DLLFUNC int m_chghost(aClient *cptr, aClient *sptr, int parc, char *parv[])
 
        if ((acptr = find_person(parv[1], NULL)))
        {
+               if (MyClient(sptr) && (IsLocOp(sptr) && !MyClient(acptr)))
+               {
+                       sendto_one(sptr, err_str(ERR_NOPRIVILEGES), me.name,
+                               parv[0]);
+                       return 0;
+               }
+                       
                DYN_LOCAL(char, did_parts, acptr->user->joined);
                if (!strcmp(GetHost(acptr), parv[2]))
                {
index 3e9a46c06b671df983b72b91d0252dfc5accfc15..4c28c56fd593edc4cd47decd80933ecd6d01c1eb 100644 (file)
@@ -158,6 +158,13 @@ int  legalident = 1;
 
        if ((acptr = find_person(parv[1], NULL)))
        {
+               if (MyClient(sptr) && (IsLocOp(sptr) && !MyClient(acptr)))
+               {
+                       sendto_one(sptr, err_str(ERR_NOPRIVILEGES), me.name,
+                               parv[0]);
+                       return 0;
+               }
+
                DYN_LOCAL(char, did_parts, acptr->user->joined);
                switch (UHOST_ALLOWED)
                {
index db8b204c09839afed45452f888d80c2eb19cf7d0..f9b668c22b92034f8de6dd0bc05027954573fc2a 100644 (file)
@@ -146,6 +146,13 @@ DLLFUNC int m_chgname(aClient *cptr, aClient *sptr, int parc, char *parv[])
 
        if ((acptr = find_person(parv[1], NULL)))
        {
+               if (MyClient(sptr) && (IsLocOp(sptr) && !MyClient(acptr)))
+               {
+                       sendto_one(sptr, err_str(ERR_NOPRIVILEGES), me.name,
+                               parv[0]);
+                       return 0;
+               }
+
                /* set the realname first to make n:line checking work */
                ircsprintf(acptr->info, "%s", parv[2]);
                /* only check for n:lines if the person who's name is being changed is not an oper */