Open
Description
A map provided by an adversary could crash the client. There should be try-catch surroundings, and if exception happens, unset the map to null and show a message to the user
05.01. 06:09:00.622 KABOOOOOOM!!! Info:
05.01. 06:09:00.623 Type: System.FormatException
05.01. 06:09:00.623 Message: Input string was not in a correct format.
05.01. 06:09:00.638 Source: mscorlib
05.01. 06:09:00.638 TargetSite.Name: StringToNumber
05.01. 06:09:00.639 Stacktrace: at System.Number.StringToNumber(String str, NumberStyles options, NumberBuffer& number, NumberFormatInfo info, Boolean parseDecimal)
at System.Number.ParseInt32(String s, NumberStyles style, NumberFormatInfo info)
at System.Convert.ToInt32(String value, IFormatProvider provider)
at DTAClient.Domain.Multiplayer.Map.GetIsometricWaypointCoords(String waypoint, String[] actualSizeValues, String[] localSizeValues, Point previewSizePoint) in C:\Dev\xna-cncnet-client\DXMainClient\Domain\Multiplayer\Map.cs:line 879
at DTAClient.Domain.Multiplayer.Map.GetStartingLocationPreviewCoords(Point previewSize) in C:\Dev\xna-cncnet-client\DXMainClient\Domain\Multiplayer\Map.cs:line 475
at DTAClient.DXGUI.Multiplayer.GameLobby.MapPreviewBox.UpdateMap() in C:\Dev\xna-cncnet-client\DXMainClient\DXGUI\Multiplayer\GameLobby\MapPreviewBox.cs:line 456
at DTAClient.DXGUI.Multiplayer.GameLobby.MapPreviewBox.set_GameModeMap(GameModeMap value) in C:\Dev\xna-cncnet-client\DXMainClient\DXGUI\Multiplayer\GameLobby\MapPreviewBox.cs:line 109
at DTAClient.DXGUI.Multiplayer.GameLobby.GameLobbyBase.ChangeMap(GameModeMap gameModeMap) in C:\Dev\xna-cncnet-client\DXMainClient\DXGUI\Multiplayer\GameLobby\GameLobbyBase.cs:line 2228
at DTAClient.DXGUI.Multiplayer.GameLobby.MultiplayerGameLobby.ChangeMap(GameModeMap gameModeMap) in C:\Dev\xna-cncnet-client\DXMainClient\DXGUI\Multiplayer\GameLobby\MultiplayerGameLobby.cs:line 1110
at DTAClient.DXGUI.Multiplayer.GameLobby.CnCNetGameLobby.ChangeMap(GameModeMap gameModeMap) in C:\Dev\xna-cncnet-client\DXMainClient\DXGUI\Multiplayer\GameLobby\CnCNetGameLobby.cs:line 1251
at DTAClient.DXGUI.Multiplayer.GameLobby.GameLobbyBase.LbGameModeMapList_SelectedIndexChanged() in C:\Dev\xna-cncnet-client\DXMainClient\DXGUI\Multiplayer\GameLobby\GameLobbyBase.cs:line 704
at DTAClient.DXGUI.Multiplayer.GameLobby.GameLobbyBase.LbGameModeMapList_SelectedIndexChanged(Object sender, EventArgs e) in C:\Dev\xna-cncnet-client\DXMainClient\DXGUI\Multiplayer\GameLobby\GameLobbyBase.cs:line 708
at Rampastring.XNAUI.XNAControls.XNAMultiColumnListBox.ListBox_SelectedIndexChanged(Object sender, EventArgs e)
at Rampastring.XNAUI.XNAControls.XNAListBox.set_SelectedIndex(Int32 value)
at Rampastring.XNAUI.XNAControls.XNAListBox.OnMouseLeftDown()
at Rampastring.XNAUI.XNAControls.XNAControl.Update(GameTime gameTime)
at Rampastring.XNAUI.XNAControls.XNAPanel.Update(GameTime gameTime)
at Rampastring.XNAUI.XNAControls.XNAListBox.Update(GameTime gameTime)
at Rampastring.XNAUI.XNAControls.XNAControl.Update(GameTime gameTime)
at Rampastring.XNAUI.XNAControls.XNAPanel.Update(GameTime gameTime)
at Rampastring.XNAUI.XNAControls.XNAControl.Update(GameTime gameTime)
at Rampastring.XNAUI.XNAControls.XNAPanel.Update(GameTime gameTime)
at Rampastring.XNAUI.XNAControls.XNAControl.Update(GameTime gameTime)
at Rampastring.XNAUI.XNAControls.XNAPanel.Update(GameTime gameTime)
at ClientGUI.DarkeningPanel.Update(GameTime gameTime) in C:\Dev\xna-cncnet-client\ClientGUI\DarkeningPanel.cs:line 93
at Rampastring.XNAUI.WindowManager.Update(GameTime gameTime)
at Microsoft.Xna.Framework.Game.SortingFilteringCollection`1.ForEachFilteredItem[TUserData](Action`2 action, TUserData userData)
at Microsoft.Xna.Framework.Game.DoUpdate(GameTime gameTime)
at Microsoft.Xna.Framework.Game.Tick()
at MonoGame.Framework.WinFormsGameWindow.TickOnIdle(Object sender, EventArgs e)
at System.Windows.Forms.Application.ThreadContext.System.Windows.Forms.UnsafeNativeMethods.IMsoComponent.FDoIdle(Int32 grfidlef)
at System.Windows.Forms.Application.ComponentManager.System.Windows.Forms.UnsafeNativeMethods.IMsoComponentManager.FPushMessageLoop(IntPtr dwComponentID, Int32 reason, Int32 pvLoopData)
at System.Windows.Forms.Application.ThreadContext.RunMessageLoopInner(Int32 reason, ApplicationContext context)
at System.Windows.Forms.Application.ThreadContext.RunMessageLoop(Int32 reason, ApplicationContext context)
at MonoGame.Framework.WinFormsGameWindow.RunLoop()
at Microsoft.Xna.Framework.Game.Run(GameRunBehavior runBehavior)
at DTAClient.Startup.Execute() in C:\Dev\xna-cncnet-client\DXMainClient\Startup.cs:line 157
at DTAClient.PreStartup.Initialize(StartupParams parameters) in C:\Dev\xna-cncnet-client\DXMainClient\PreStartup.cs:line 213