Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Make client robust against evil maps that could crash the client #621

Open
SadPencil opened this issue Jan 4, 2025 · 0 comments
Open

Make client robust against evil maps that could crash the client #621

SadPencil opened this issue Jan 4, 2025 · 0 comments
Labels

Comments

@SadPencil
Copy link
Member

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
@SadPencil SadPencil added the bug label Jan 5, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

1 participant