<feed xmlns='http://www.w3.org/2005/Atom'>
<title>~steering/inspircd++.git/src/userprocess.cpp, branch v2.0.26</title>
<subtitle>Unnamed repository; edit this file 'description' to name the repository.</subtitle>
<id>https://www.cgit.space/~steering/inspircd++.git/atom/src/userprocess.cpp?h=v2.0.26</id>
<link rel='self' href='https://www.cgit.space/~steering/inspircd++.git/atom/src/userprocess.cpp?h=v2.0.26'/>
<link rel='alternate' type='text/html' href='https://www.cgit.space/~steering/inspircd++.git/'/>
<updated>2015-02-23T22:28:46Z</updated>
<entry>
<title>Fix a minor crash when a user has no class after OnCheckReady.</title>
<updated>2015-02-23T22:28:46Z</updated>
<author>
<name>Peter Powell</name>
</author>
<published>2015-02-22T20:24:31Z</published>
<link rel='alternate' type='text/html' href='https://www.cgit.space/~steering/inspircd++.git/commit/?id=81841f76c863844210baf991d5c8cdfd01e57353'/>
<id>urn:sha1:81841f76c863844210baf991d5c8cdfd01e57353</id>
<content type='text'>
This bug looks serious but it can only be triggered with a
very unusual server configuration problem. If you haven't
already had a crash then you probably aren't at any risk.

The way this crash happens is:

1. InspIRCd::DoBackgroundUserStuff is called by the main loop.
2. In the switch statement curr-&gt;registered is set to REG_NICKUSER so InspIRCd::AllModulesReportReady is called.
3. InspIRCd::AllModulesReportReady calls the OnCheckReady event in m_cgiirc.
4. m_cgiirc calls RecheckClass which sets the user's class to NULL and calls LocalUser::SetClass followed by LocalUser::CheckClass.
5. The user doesn't match any classes in LocalUser::SetClass so LocalUser::CheckClass quits the user with with "Access denied by configuration".
6. Control flow returns to InspIRCd::DoBackgroundUserStuff when InspIRCd::AllModulesReportReady returns false.
7. The if statement at the end of InspIRCd::DoBackgroundUserStuff calls ConnectClass::GetRegTimeout on curr-&gt;MyClass.
8. ConnectClass::GetRegTimeout tries to access a member of this which is NULL.
9. The server crashes with a SEGFAULT.
</content>
</entry>
<entry>
<title>Fix User::age being incorrectly used in some places instead of signon</title>
<updated>2014-12-30T19:26:05Z</updated>
<author>
<name>Attila Molnar</name>
</author>
<published>2014-12-30T19:26:05Z</published>
<link rel='alternate' type='text/html' href='https://www.cgit.space/~steering/inspircd++.git/commit/?id=37db441fb55f954f25fb2846e803b5c9527c21bb'/>
<id>urn:sha1:37db441fb55f954f25fb2846e803b5c9527c21bb</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Revert "Fix an off-by-one on registration timeout handling."</title>
<updated>2014-10-04T23:51:47Z</updated>
<author>
<name>Robin Burchell</name>
</author>
<published>2014-10-04T23:51:47Z</published>
<link rel='alternate' type='text/html' href='https://www.cgit.space/~steering/inspircd++.git/commit/?id=d4d907fcb3a98a7d17093c1488666eea6bfd9848'/>
<id>urn:sha1:d4d907fcb3a98a7d17093c1488666eea6bfd9848</id>
<content type='text'>
This seemingly breaks (occasionally timing users out a second early), possibly
due to rounding issues on time (User::age and Time() both return int, but a
whole second is comprised of many ms).

The root cause needs investigation, but we cannot leave a potentially breaking
bug in the tree.

This reverts commit 4414d644a163f3906f90b35186e07ce0383161f4.
</content>
</entry>
<entry>
<title>Fix an off-by-one on registration timeout handling.</title>
<updated>2014-10-04T14:25:00Z</updated>
<author>
<name>Robin Burchell</name>
</author>
<published>2014-10-04T13:30:56Z</published>
<link rel='alternate' type='text/html' href='https://www.cgit.space/~steering/inspircd++.git/commit/?id=4414d644a163f3906f90b35186e07ce0383161f4'/>
<id>urn:sha1:4414d644a163f3906f90b35186e07ce0383161f4</id>
<content type='text'>
The use of &gt; instead of &gt;= here added a second onto the configured timeout.

We won't be breaking any existing configuration, because users.h explicitly
increases the limit if it's 0.
</content>
</entry>
<entry>
<title>Add a typedef for LocalUserList</title>
<updated>2012-11-29T22:41:22Z</updated>
<author>
<name>attilamolnar</name>
</author>
<published>2012-11-20T23:15:13Z</published>
<link rel='alternate' type='text/html' href='https://www.cgit.space/~steering/inspircd++.git/commit/?id=a589577b68cb84bc877ecdd4c0f9cb84a1581ddd'/>
<id>urn:sha1:a589577b68cb84bc877ecdd4c0f9cb84a1581ddd</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Replace copyright headers with headers granting specific authors copyright</title>
<updated>2012-04-19T18:58:29Z</updated>
<author>
<name>Robby-</name>
</author>
<published>2012-04-19T18:58:29Z</published>
<link rel='alternate' type='text/html' href='https://www.cgit.space/~steering/inspircd++.git/commit/?id=46a39046196f55b52336e19662bb7bac85b731ac'/>
<id>urn:sha1:46a39046196f55b52336e19662bb7bac85b731ac</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Fix the pseudo-penalty hack that doesn't work properly</title>
<updated>2010-09-05T21:03:07Z</updated>
<author>
<name>Daniel De Graaf</name>
</author>
<published>2010-09-05T21:01:49Z</published>
<link rel='alternate' type='text/html' href='https://www.cgit.space/~steering/inspircd++.git/commit/?id=6010e6b53c8f0b89718f8c883f701dcf70246660'/>
<id>urn:sha1:6010e6b53c8f0b89718f8c883f701dcf70246660</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Remove excessive gettimeofday system calls</title>
<updated>2010-01-18T19:36:41Z</updated>
<author>
<name>danieldg</name>
</author>
<published>2010-01-18T19:36:41Z</published>
<link rel='alternate' type='text/html' href='https://www.cgit.space/~steering/inspircd++.git/commit/?id=7e46119759b7099c38f543bd38d0186b9806542f'/>
<id>urn:sha1:7e46119759b7099c38f543bd38d0186b9806542f</id>
<content type='text'>
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@12293 e03df62e-2008-0410-955e-edbf42e46eb7
</content>
</entry>
<entry>
<title>...because every now and again, i have to do a massive commit.</title>
<updated>2010-01-11T03:07:32Z</updated>
<author>
<name>brain</name>
</author>
<published>2010-01-11T03:07:32Z</published>
<link rel='alternate' type='text/html' href='https://www.cgit.space/~steering/inspircd++.git/commit/?id=cd712c40e1b352c05e7ae0f72e0a5e84cdf64323'/>
<id>urn:sha1:cd712c40e1b352c05e7ae0f72e0a5e84cdf64323</id>
<content type='text'>
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@12248 e03df62e-2008-0410-955e-edbf42e46eb7
</content>
</entry>
<entry>
<title>Add fine-grained command flood controls</title>
<updated>2009-11-11T19:52:03Z</updated>
<author>
<name>danieldg</name>
</author>
<published>2009-11-11T19:52:03Z</published>
<link rel='alternate' type='text/html' href='https://www.cgit.space/~steering/inspircd++.git/commit/?id=0f87ad0d4b97874823c94a5168a06dcd444ad559'/>
<id>urn:sha1:0f87ad0d4b97874823c94a5168a06dcd444ad559</id>
<content type='text'>
This reintrouces "Excess Flood" quits for those that prefer it to fakelag,
and allows the maximum command rate to be set in the connect block.

git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@12093 e03df62e-2008-0410-955e-edbf42e46eb7
</content>
</entry>
</feed>
