summaryrefslogtreecommitdiff
path: root/src/mode.cpp
diff options
context:
space:
mode:
authorbrain <brain@e03df62e-2008-0410-955e-edbf42e46eb7>2006-01-15 17:48:30 +0000
committerbrain <brain@e03df62e-2008-0410-955e-edbf42e46eb7>2006-01-15 17:48:30 +0000
commitb604a2cd41e6f70f56e721d949a6cbac7550b67e (patch)
tree8d90295ee08c88e28cb3f4fbba5ce3937b20e294 /src/mode.cpp
parent1383dba43e463f292aea094d01f62f355946049d (diff)
Bug found by PinkFreud - If an oper deopers themselves by removing the +o mode, their userrec::oper field isnt cleared. Clear it forcibly before DeleteOper.
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@2796 e03df62e-2008-0410-955e-edbf42e46eb7
Diffstat (limited to 'src/mode.cpp')
-rw-r--r--src/mode.cpp3
1 files changed, 3 insertions, 0 deletions
diff --git a/src/mode.cpp b/src/mode.cpp
index 0f4f0d976..ec29024e0 100644
--- a/src/mode.cpp
+++ b/src/mode.cpp
@@ -1365,7 +1365,10 @@ void cmd_mode::Handle (char **parameters, int pcnt, userrec *user)
strlcpy(dmodes,temp,52);
if (umode == 'o')
+ {
+ *dest->oper = 0;
DeleteOper(dest);
+ }
}
}
}