ModernUO/Scripts/Items/Skill Items
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
..
Blacksmith Items/Misc 2006-06-15 04:14:30 +00:00
Camping Implement Core.TickCount 2013-10-06 03:21:18 -07:00
Carpenter Items re-applied weight correction for fish. 2011-10-23 15:59:39 +00:00
Fishing - Removed the ASCII 0x7F control character from safe character lists. 2012-09-08 23:42:45 +00:00
Harvest Tools Ninja Darts and Shuriken should use combat checks, never 100% chance of hit. Should trigger Evil Omen poison level increase. Missed shots should not consume poison chg, but empty ammo clears weapon poison. Code overhaul. 2010-12-31 20:28:58 +00:00
Lumberjack - extensive framework for dueling, tournaments, and events 2012-04-22 05:37:16 +00:00
Magical remove ParentEntity and RootParentEntity 2014-02-15 13:21:28 -07:00
Misc implement client bandage macro handler 2013-10-02 03:16:12 -07:00
Musical Instruments Implement Core.TickCount 2013-10-06 03:21:18 -07:00
Ninjitsu Implement Core.TickCount 2013-10-06 03:21:18 -07:00
Specialized Commodity deed updates: added bottles, potions, spell scrolls, zoogifungus. fixed filled hue, removed unnecessary desc prop from ICommodity, pre-aos OSI style labels dont need it. 2010-11-19 18:59:44 +00:00
Tailor Items Implement Core.TickCount 2013-10-06 03:21:18 -07:00
Thief edge-case bandaid for disguise kits 2014-02-27 13:46:12 -07:00
Tinkering Implement Core.TickCount 2013-10-06 03:21:18 -07:00
Tools Infinite Loop Breakout 2015-07-21 00:45:43 +01:00