Highly Performant & Scalable Ultima Online Server Emulator https://www.modernuo.com
Find a file
Vorspire 1e5bc72366 Infinite Loop Breakout
There is a very rare potential, mostly in custom situations, for the 'BaseRunicTool' 'ApplySkillBonus' method to cause the server to become unresponsive.
The reason for this is that, if you call the method on a 'Spellbook' which already has all 4 of the skills listed by default in 'm_PossibleSpellbookSkills', then 'found' is always true.

This issue has been reproduced on a shard that calls 'ApplySkillBonus' more than once when crafting 'Spellbooks'; the rarity is that the 'ApplyAttributesTo' method may call the 'ApplySkillBonus' more than once; the off-chance of 5 consecutive calls, where each preceding call applies one unique skill of the 'possibleSkills', would result in the 5th call entering the deadlock state.

The fix is quite simple, evaluate the 'count' in the while statement and decrement it for each skill that is checked; removing each skill from the 'possibleSkills' list as they are checked, to prevent them being checked multiple times due to the random indices selection.
2015-07-21 00:45:43 +01:00
Data tiger shrink table entry 2014-03-05 15:39:08 -07:00
Scripts Infinite Loop Breakout 2015-07-21 00:45:43 +01:00
Server Found issue with XMLserialization using local time to serialize instead of UTC. Changed to be consistent with rest of project. 2014-04-13 22:03:06 -05:00
.gitignore Buildable/Runnable/Debuggable solution for Visual Studio 2013-09-30 13:44:17 -04:00
LICENSE Initial commit 2013-09-07 19:05:34 -07:00
README.md Added Gitter badge 2015-07-07 06:38:02 +00:00
RunUO.exe.config use CSPRandom with MONO 2013-11-02 12:29:43 -07:00
RunUO.sln remove old Assemblies.cfg reference from vs solution 2014-02-26 15:08:14 -07:00

runuo

Join the chat at https://gitter.im/runuo/runuo

RunUO Git Repository

Typical Windows Build

PS C:\runuo> C:\Windows\Microsoft.NET\Framework64\v4.0.30319\csc /optimize /unsafe /t:exe /out:RunUO.exe /win32icon:Server\runuo.ico /recurse:Server\*.cs

Typical Linux Build (MONO)

~/runuo$ dmcs -optimize+ -unsafe -t:exe -out:RunUO.exe -win32icon:Server/runuo.ico -nowarn:219,414 -d:MONO -recurse:Server/*.cs

zlib is required for certain functionality. Windows zlib builds are packaged with releases and can also be obtained separately here: https://github.com/msturgill/zlib/releases/latest

RunUO supports Intel's hardware random number generator (Secure Key, Bull Mountain, rdrand, etc). If rdrand32.dll/rdrand64.dll are present in the base directory and the hardware supports that functionality, it will be used automatically. You can find those libraries here: https://github.com/msturgill/rdrand/releases/latest

Latest Razor builds can be found at https://github.com/msturgill/razor/releases/latest

Latest UOSteam builds (previously AssistUO) can be found at http://uosteam.com

IRC: chat.freenode.net #runuo